我有一个相当大(~100MB)的 PDF 文档,里面有很多图片(作为插图和背景图片),我想要一份没有图片的 pdf 文件,但我不知道如何去做。
我不是在谈论仅将其转换为文本,我想保持段落/表格/多列原样。
我对命令行很满意,并且有几台可以使用不同发行版的计算机。
Kur*_*fle 23
最新版本的 Ghostscript 也可以做到这一点。只需将参数添加-dFILTERIMAGE到您的命令中即可。
甚至可以添加两个新参数,以便有选择地删除内容类型“vector”和“text”:
-dFILTERIMAGE: 产生一个输出,其中所有光栅图像都被删除。
-dFILTERTEXT: 生成一个输出,其中删除了所有文本元素。
-dFILTERVECTOR:生成一个输出,其中删除了所有矢量图。
这些选项中的任何两个都可以组合。(如果您将所有 3 个组合在一起,您将得到所有页面都被清空...)
这是一个示例 PDF 页面的屏幕截图,其中包含上述所有 3 种类型的内容:
包含“图像”、“矢量”和“文本”元素的原始 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
下图说明了结果:
顶行,从左起:删除所有“文本”;删除了所有“图像”;删除了所有“向量”。底行,从左起:仅保留“文本”;只保留“图像”;只保留了“向量”。

Rin*_*ind 15
cpdf -draft original.pdf -o version_without_images.pdf
Run Code Online (Sandbox Code Playgroud)
它不在存储库中,但您可以在他们的网站上找到下载(预编译或源代码)。
手册:
15.1 文件草案
-draft 选项从文件中删除位图(照片)图像,以便可以用更少的墨水打印它。或者,可以添加 -boxes 选项,用表示图像位置的交叉框填充留空的空间。这不能保证在所有情况下都完全可见(位图可能已被矢量对象部分覆盖或在原始图像中被剪裁)。例如:
Run Code Online (Sandbox Code Playgroud)cpdf -draft -boxes in.pdf -o out.pdf
虽然@Rinzwind 的答案是正确的,但我只想评论“中途”解决方案。通常,您可以使用Ghostscript大大减小图像的大小
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf
Run Code Online (Sandbox Code Playgroud)
...有时校对确实很方便。编写 PDF 的手册页在这里。
| 归档时间: |
|
| 查看次数: |
10986 次 |
| 最近记录: |