cod*_*din 6 pdf poppler imagemagick ghostscript
我想删除/删除PDF中的所有图像,只留下PDF中的文本/字体,无论使用什么命令行工具.
我尝试-dGraphicsAlphaBits=1在Ghostscript命令中使用,但图像存在,但像一个大像素.
小智 19
您可以使用cpdf的草稿选项:
cpdf -draft in.pdf -o out.pdf
Run Code Online (Sandbox Code Playgroud)
这应该适用于大多数情况,但如果它没有为您做正确的事情,请提交错误报告.
披露:我是cpdf的作者.
时间过去了,Ghostscript的开发已经取得了进展......
最新版本具有以下新命令行参数.这些可以添加到命令行:
-dFILTERIMAGE:生成一个输出,其中删除所有光栅图形.
-dFILTERTEXT:生成一个输出,其中删除所有文本元素.
-dFILTERVECTOR:生成一个输出,其中删除所有矢量绘图.
可以组合这些选项中的任何两个.
示例命令:
gs -o noimage.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf
Run Code Online (Sandbox Code Playgroud)
更多细节(包括一些说明性的截图)可以在我的答案"如何从PDF中删除所有图像?"中找到..
不,据我所知,使用命令行工具不可能删除PDF 中的所有图像。
无论如何,您的请求的目的是什么?保存文件大小?删除图像中包含的信息?或者 ...?
无论您的目标是什么,这里都有一个命令,可以将所有图像采样到 2 ppi 的分辨率(更新: 1 ppi 不起作用)。它同时实现了两个目标:
以下是如何选择性地执行此操作,仅针对第 33 页上的图像original.pdf:
gs \
-o images-uncomprehendable.pdf \
-sDEVICE=pdfwrite \
-dDownsampleColorImages=true \
-dDownsampleGrayImages=true \
-dDownsampleMonoImages=true \
-dColorImageResolution=2 \
-dGrayImageResolution=2 \
-dMonoImageResolution=2 \
-dFirstPage=33 \
-dLastPage=33 \
original.pdf
Run Code Online (Sandbox Code Playgroud)
如果您想对所有页面上的所有图像执行此操作,只需跳过和参数即可。-dFirstPage-dLastPage
如果您想从图像中删除所有颜色信息,请在同一命令中将它们转换为灰度(在 Stackoverflow 上搜索其他答案,其中讨论了详细信息)。
更新:最初,我建议使用 1 PPI 的分辨率。这似乎不适用于 Ghostscript。我现在用 2 PPI 进行测试。这有效。
更新 2:另请参阅以下(新)问题及其答案:
它提供了一些示例 PostScript 代码,可以从 PDF 中完全删除所有(光栅)图像,而页面布局的其余部分保持不变。
它还反映了 Ghostscript 的扩展新功能,现在可以有选择地删除 PDF 中的所有文本、所有光栅图像、所有矢量对象,或者这 3 种类型的任意组合。
| 归档时间: |
|
| 查看次数: |
5465 次 |
| 最近记录: |