我正在使用ghostscript来压缩PDF大小。以下命令用于/opt/pdf/ghostpdl-9.23/bin/gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$1 $2
这将通过压缩PDF中的所有图像来减小PDF的大小。但是,当我在PDFBox的调试器工具中检查压缩的PDF时,我可以看到内容的长度增加了。它看起来像是ghostscript解压缩的内容,但是没有正确地进行重新压缩
原始PDF:https://35.200.235.243/download?fileName=/opt/pdf/test.pdf压缩PDF:https://35.200.235.243/download?fileName=/opt/pdf/test-compress1.pdf
我尝试使用setCompressionLevel(9)使用iText重新压缩内容。然而,原始压缩仍然没有实现。
是否有任何机制可以通过ghostscript实现内容的原始压缩
发布于 2018-06-25 15:26:49
Ghostscript (更具体地说是pdfwrite设备)根本不“压缩”PDF文件。它会生成一个全新的PDF文件,该文件可能(也可能不会)比原始文件小。
Ghostscript总是解压输入,这个过程被描述为here,并且应该解释为什么这种情况总是会发生。
我看不出你为什么认为Ghostscript没有重新压缩图像流,所有的图像流都是用Flate或DCT编码压缩的。
你没有说,你认为哪个内容增加了,并且考虑到原始文件是1.2MB,Ghostscript输出是390KB,我不清楚你的抱怨到底是什么。对我来说,输出文件要小得多。
如果您希望流在输出文件中的编号与输入文件中的编号相同,那么您就不走运了,请参阅上面链接的概述以了解原因。
注意你的命令行不会压缩图像,它会降低图像的分辨率,从而降低图像的质量。
https://stackoverflow.com/questions/51015810
复制相似问题