【发布时间】:2018-10-05 14:12:21
【问题描述】:
我有以下问题:
我正在从京瓷扫描仪设备接收各种扫描的 PDF 文件。
我必须自动操作这些 PDF 文件以便:
- 从文本标记中删除颜色
- 将 PDF 转换为灰度
- 将其放入我们的 DMS 中
我正在使用 Bash 脚本来完成这项工作。
为了删除文本标记颜色并转换为灰度,我使用 Imagemagick:
convert -density 150 INPUT.pdf \
-channel rgba \
-alpha set \
-fuzz 15% \
-fill white \
-opaque 'rgb(255,200,195)' \
-opaque 'rgb(255,253,177)' \
-opaque 'rgb(255,155,240)' \
-opaque 'rgb(255,91,193)' \
-colorspace gray OUTPUT-convert.pdf
生成的图像非常好,但是 PDF 的大小很大:
原件:365K 转换:1.358K
所以我找到了一个 ghostscript 命令来完成这项工作并减小文件大小:
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -dCompatibilityLevel=1.4 \
-sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged \
-dPDFSETTINGS=/ebook \
-sOutputFile=OUTPUT-ghostscript.pdf OUTPUT-convert.pdf
现在文件大小为:
原件:365K 已转换:1.358K(输出转换.pdf) Ghostscript:500K(输出-ghostscript.pdf)
我无法弄清楚为什么 PDF 处理后的大小(从彩色到灰度)都高于原始文档。密度(150 dpi)是原始文档的分辨率。
当我在 Windows 上通过 Adobe Acrobat 放置转换后的 PDF (1.358K) 并重新创建 PDF 时,大小为 213K。我没有质量损失。如何在 linux 下使用 bash 脚本实现这一点?
感谢任何帮助!
这里是 PDF 文件示例的链接:
http://62.75.158.162/download/yKLu3fkbLy7MgkczDrKdG6osHdXh3jvy/
【问题讨论】:
-
Imagemagick 使用 ghostscript 处理 PDF。但两者都光栅化了pdf。如果然后将其转换为 PDF,那么您所做的就是将光栅图像放入矢量外壳中。这将不小于您使用 ghostscript 或 Imagemagick 阅读 PDF 时创建的光栅图像。
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。
标签: linux imagemagick pdf-generation ghostscript imagemagick-convert