我有一个相当大的(~100MB)PDF 文档,其中包含大量图像(如插图和背景图像),我想获得一份不带图像的 PDF 副本,但我不知道如何做到这一点。
我并不是说将其仅转换为文本,而是想保留段落/表格/多列的原样。
我对命令行很熟悉,并且我拥有多台装有不同发行版的计算机可以使用。
答案1
Ghostscript 的最新版本也可以做到这一点。只需将参数添加-dFILTERIMAGE
到命令中即可。
甚至还有两个新参数可以添加,以便有选择地删除内容类型“向量”和“文本”:
-dFILTERIMAGE
:产生删除所有光栅图像的输出。-dFILTERTEXT
:产生所有文本元素都被删除的输出。-dFILTERVECTOR
:产生删除所有矢量图的输出。
可以将其中任意两个选项组合起来。(如果将这三个选项组合起来,所有页面都会被清空……)
例子
下面是示例 PDF 页面的屏幕截图,其中包含上述所有 3 种类型的内容:
原始 PDF 页面的屏幕截图包含“图像”、“矢量”和“文本”元素。
运行以下 6 个命令将创建剩余内容的所有 6 种可能的变体:
gs -o noIMG.pdf -sDEVICE=pdfwrite -dFILTERIMAGE 输入.pdf gs -o noTXT.pdf -sDEVICE=pdfwrite -dFILTERTEXT 输入.pdf gs -o noVCT.pdf -sDEVICE=pdfwrite -dFILTERVECTOR 输入.pdf gs -o onlyIMG.pdf -sDEVICE=pdfwrite -dFILTERVECTOR -dFILTERTEXT 输入.pdf gs -o onlyTXT.pdf -sDEVICE=pdfwrite -dFILTERVECTOR -dFILTERIMAGE 输入.pdf gs -o onlyVCT.pdf -sDEVICE=pdfwrite -dFILTERIMAGE -dFILTERTEXT 输入.pdf
下图说明了结果:
顶行,从左至右:删除所有“文本”;删除所有“图像”;删除所有“矢量”。最下面一行,从左至右:仅保留“文本”;仅保留“图像”;仅保留“矢量”。
答案2
答案3
而@Rinzwind 的答案是正确的事,我只想评论一下“中间”解决方案。通常,您可以使用以下方法大大减小图像的大小ghostscript和
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf
...有时它对于校对来说真的很方便。编写 PDF 的手册页是这里。