缩小PDF

时间:2017-05-27 18:29:11

标签: pdf ghostscript

我不确定这是否是发布此问题的正确位置。

我试图减少多个7MB PDF文件的大小,所以我尝试了在网上找到的这个ghostscript命令:

simple ghostscript with printer quality setting
    gswin32c.exe -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

tried this
    gswin32c.exe -o output.pdf -sDEVICE=pdfwrite -dColorConversionStrategy=/LeaveColorUnchanged -dDownsampleMonoImages=false -dDownsampleGrayImages=false -dDownsampleColorImages=false -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode input.pdf

and this
    gswin32c.exe -o output.pdf -sDEVICE=pdfwrite -dColorConversionStrategy=/LeaveColorUnchanged -dEncodeColorImages=false -dEncodeGrayImages=false -dEncodeMonoImages=false input.pdf

但是在所有情况下,获得的PDF文件都是“更大”的。原来的。 所有这些pdf文件基本上都是扫描图像的集合,所以我可能需要一个特定的选项来告诉' ghostscript压缩它们?

我发现奇怪的是使用幻影版的试用版pdf我能够将尺寸减小到2-5MB而不会有明显的质量损失。

我如何对ghostscript做同样的事情?

1 个答案:

答案 0 :(得分:0)

首先,Ghostscript(或更准确地说,Ghostscript的pdfwrite设备)不会“缩小”PDF文件,它会使新的文件变小或变小。

其次,几乎无法说出PDF文件可能会发生什么,而无需查看示例。

如果您的文件确实是扫描图像,那么(假设合理的初始压缩)可能无法在不降低质量的情况下缩小文件大小。你可能没有注意到质量下降,特别是如果你只是在屏幕上观看,但它会在那里。

使用在线运行的命令行进行随机戳可能不会产生有用的输出;你真的需要了解原始文件中使用大小的位置,然后选择可能会减少它的选项。

例如,您说这些页面是扫描图像;只有两种现实的方法可以缩小图像的大小,将其下采样到较低的分辨率,或选择不同的(更有效,可能有损,压缩)。 Ghostscript已经压缩了图像数据(除非你告诉它不要)。

后两个命令行明确禁用图像下采样,因此它们不太可能减小扫描图像的大小。 (默认情况下,pdfwrite设备不会对图像进行下采样,我们会尝试保持质量)

中间选项禁用自动压缩,并选择Flate压缩。如果您的图像以前是JPEG压缩的,或者不是连续色调图像,那么这可能是合理的。

您还说PDF文件变大了,很可能是因为使用了压缩对象流和外部参照,这是pdfwrite设备不支持的PDF 1.5功能。但是它不太可能为你节省太多空间。

我认为最可能的区别是'幻影PDF'正在使用更积极的下采样,您可以使用pdfwrite重现。

当然,我假设您使用的是最新版本的Ghostscript。不出所料,旧版本的表现不如最近版本。