【发布时间】:2019-01-15 10:07:22
【问题描述】:
我正在尝试使用 Ghostscript 压缩 PDF。我有一个包含大约 5000 个 PDF 文件的文件夹,所有文件的大小(5-1000 页)和外观都不同。我使用的gs 命令成功压缩了其中的 2700 个。但是,剩余的 2300 个仍然未压缩,并且在许多情况下,在应用命令后大小有所增加。下面是我通过 python 脚本调用的命令。请告诉我应该添加或删除什么以确保所有 PDF 都被压缩。
gs \
-q \
-dNOPAUSE \
-dBATCH \
-dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dSubsetFonts=true \
-dUseFlateCompression=true \
-dOptimize=true \
-dProcessColorModel=/DeviceRGB \
-dDownsampleGrayImages=true \
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=150 \
-dAutoFilterGrayImages=false \
-dDownsampleMonoImages=true \
-dMonoImageDownsampleType=/Bicubic \
-dCompressPages=true \
-dMonoImageResolution=150 \
-dDownsampleColorImages=true \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=150 \
-dAutoFilterColorImages=false \
-dPDFSETTINGS= /screen \
-sOutputFile = output.pdf
input.pdf
【问题讨论】:
-
您的命令行过于复杂。不仅如此,而且几乎所有这些都是完全不相关的。 -dPDFSETTINGS=/screen 将覆盖该点之前命令行中的几乎所有内容。您应该或者单独设置所有参数,或使用-dPDFSETTINGS,而不是两者。您还必须共享一个演示问题的文件,并解释您如何确定文件是否未压缩。简单地检查文件大小并不能告诉你。
-
此外,答案可能是问题输入文件已经按需要压缩,甚至压缩得更好......
-
@KenS,对不起。我对ghostscript很陌生。在查看了其他一些 ghostscript 命令并将所有这些命令结合起来之后,我做出了上述命令。我无法共享该文件,因为它包含私人信息。我可以覆盖 -dPDFSETTINGS=/screen 吗?你能告诉我一个更好的压缩 PDF 文件的命令吗?对于给您带来的不便,我真的很抱歉。我对 gs 和 pdf 压缩非常陌生。
-
'覆盖' ?如果您要手动设置所有参数,为什么不简单地省略它呢?所有“PDFSETTINGS”所做的都是将那些完全相同的参数设置在一个大块中,而不是单独设置它们。 Ghostscript 不会“压缩”PDF 文件。您应该阅读 VectorDevices.htm 中的文档,尤其是“概述”以了解它是如何工作的。 从不保证生成的 fng 需要查看 filerom Ghostscript 的文件将小于原始文件,除非您执行诸如大幅降低图像分辨率之类的操作。
-
请注意,每当您询问 PDF 文件(尤其是其内容,如压缩)时,人们很可能需要查看 PDF 文件才能告诉您有关它。如果你要问这种问题,你需要找到一个可以分享的文件。
标签: pdf compression ghostscript