自从我上一个回答以来,开发一直在继续,现在有一个新选项可用,这证明了一个新答案的合理性。
最新版本的 Ghostscript 支持 3 个新参数,允许您从 PDF 中删除所有 TEXT、所有 IMAGE 或所有 VECTOR 元素。
要从输入 PDF 中删除所有 TEXT 元素,请运行
gs -o no-more-texts.pdf -sDEVICE=pdfwrite -dFILTERTEXT input.pdf
要从输入 PDF 中删除所有光栅 IMAGE 元素,请运行
gs -o no-more-texts.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf
要从输入 PDF 中删除所有 VECTOR 元素,请运行
gs -o no-more-texts.pdf -sDEVICE=pdfwrite -dFILTERVECTOR input.pdf
当然,您也可以结合以上两个参数中的任何一个(结合所有三个将创建空页面。
这是一个 PDF 页面的屏幕截图,其中原始页面包含所有三个元素,而生成的页面看起来不同。
原始 PDF 页面的屏幕截图包含“图像”、“矢量”和“文本”元素。
运行以下 6 条命令将创建剩余内容的所有 6 种可能变体:
gs -o noIMG.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf
gs -o noTXT.pdf -sDEVICE=pdfwrite -dFILTERTEXT input.pdf
gs -o noVCT.pdf -sDEVICE=pdfwrite -dFILTERVECTOR input.pdf
gs -o onlyIMG.pdf -sDEVICE=pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf
gs -o onlyTXT.pdf -sDEVICE=pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
gs -o onlyVCT.pdf -sDEVICE=pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf
下图说明了结果:
顶行,从左到右:所有“文本”被删除;删除所有“图像”;删除了所有“向量”。 底行,左起:只保留“文本”;只保留“图像”;只保留“向量”。