Ghostscript压缩一批PDF

时间:2018-11-07 19:14:11

标签: pdf pdf-generation ghostscript jpeg2000

我没有编程经验。

我的PDF无法在iPad上以PDFExpert或GoodNotes格式显示图像,因为它们是JPEG2000中的图像,这在互联网上是可以找到的。

这些是大型PDF,最多1500-2000页,带有图像。其中之一是80MB左右的文件。我尝试使用Foxit进行打印,以将图像从JPEG2000转换为JPG,但是文件大小跃升至800MB ...再加上时间太长。

我偶然发现了Ghostscript,但是我不知道如何使用命令行界面。

我时间很短。几乎需要逐步指南来指导一个小的脚本,该脚本可以一次性转换所有PDF。

对我的经验和无助感到非常抱歉。有人可以用勺子喂我这个步骤吗?

编辑:我想将JPEG2000切换为任何其他格式,从而减少文件大小的增加,并在质量上造成最小的损失(在合理范围内)。我不知道如何使用Ghostscript。我基本上想将图像的压缩率更改为可以在iPad上正确显示的内容,同时保持其余文本和嵌入式书签的质量。

我会再说一遍,我对命令行没有任何经验...我什至不知道如何将GS指向我的PDF所在的文件夹...

1 个答案:

答案 0 :(得分:0)

您还没有真正说出您想要的是什么。 “转换” PDF的精确程度如何?

请注意,从JPX(JPEG2000)切换到JPEG将导致质量下降,因为图像数据将由JPEG编码器量化(对于JPX,采用不同的量化方案)。您可以改用无损压缩方案,但是那样就不会得到相同类型的压缩。无论使用哪种方式,您都无法获得与JPX相同的压缩率。

一个简单的Ghostscript命令将是:

gs -sDEVICE = pdfwrite -o out.pdf in.pdf

由于JPEG2000编码已(或至少已获得专利),因此pdfwrite设备不会将图像写为JPX <默认情况下,它将使用不同的压缩方案多次写入图像,然后使用能提供最佳压缩方案的图像压缩(实际上总是JPEG)。

要获得更好的结果,将需要更复杂的命令行,但是您还必须更加明确地说明要实现的目标以及简单化的命令行所感知的问题。

[编辑]

好吧,在执行命令行方面提供帮助对于Stack Overflow来说有点离题了,它应该是软件开发人员的网站:-)

在不知道您正在使用哪种操作系统的情况下,很难为您提供详细说明,我也不知道iPad使用什么操作系统,我通常不使用Apple设备,而我的唯一经验就是使用Mac。

大概您知道Ghostscript的安装位置(目录)。在此处打开命令外壳并键入命令./gs或通过提供完整路径来执行命令,例如:

/usr/bin/gs

我认为命令行上的参数是不言自明的,但是....

-sDEVICE=pdfwrite开关告诉Ghostscript使用pdfwrite设备,正如您可能从名称中猜测的那样,该设备将PDF文件写入其输出。

-o开关是输出文件的名称(如果需要,还有完整路径)。

最后一个参数是输入文件的名称(如果不在当前目录中,则为完整路径)。

所以命令可能看起来像:

/usr/bin/gs -sDEVICE=pdfwrite -o /home/me/output.pdf /home/me/input.pdf

或者Ghostscript和输入文件在同一目录中:

./gs -sDEVICE=pdfwrite -o out.pdf input.pdf