ghostscript收缩pdf不';我不再工作了

ghostscript收缩pdf不';我不再工作了,pdf,resize,ocr,tesseract,ghostscript,Pdf,Resize,Ocr,Tesseract,Ghostscript,第一个问题 所以我使用ghostscript命令来压缩我的pdf文件,结果很好(大小减少了30-40%)。然而,上周的一天,它停止了收缩,而是返回给我一个pdf的大小,甚至有点重(约1%或更少)。因此,我不知道发生了什么,因为该命令使用起来很好,我可以很容易地缩小一些pdf 我会注意到,当在我的PDF上使用gs时,它总是返回一个关于GlyphLessFont中缺少某些glyph的错误,但我认为这与我的问题无关(不过如果您能将我重定向到修复GlyphLessFont,我将不胜感激) 以下是我使用的

第一个问题

所以我使用ghostscript命令来压缩我的pdf文件,结果很好(大小减少了30-40%)。然而,上周的一天,它停止了收缩,而是返回给我一个pdf的大小,甚至有点重(约1%或更少)。因此,我不知道发生了什么,因为该命令使用起来很好,我可以很容易地缩小一些pdf

我会注意到,当在我的PDF上使用gs时,它总是返回一个关于GlyphLessFont中缺少某些glyph的错误,但我认为这与我的问题无关(不过如果您能将我重定向到修复GlyphLessFont,我将不胜感激)

以下是我使用的命令:

`gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf`
这里还有一个正确缩小的pdf示例(原始文件大小4.7mo/缩小后的版本2.9mo)

编辑:适用于上述文件的轻型版本:

这是另一个无法工作的pdf的输入和输出文件 (输入) (通过上面的gs命令输出)

您会注意到,输入和输出文件都是27.6mo,而第一个文件是缩减的

我还想补充一点,我已经使用pdfocr和tesseract引擎对这些pdf文件执行了OCR,这就是为什么我没有尝试转换为png以减小大小,我需要额外的OCR层,以便我们可以为我们的网站发布这些文件,我们希望它们尽可能更轻

最终信息:ghostscript-v为9.10(2013-08-30),tesseract为3.03,leptonica-1.70,pdfocr为0.1.4

希望你们能帮忙


EDIT2:在等待答案的过程中,我继续扫描和OCR文档,似乎在通过pdfocr传递我的pdf文件后,它会像使用幽灵脚本一样收缩。因此,我想知道脚本pdfocr是否会使用ghostscript进行收缩,因为我知道它会在OCRisation过程中调用它来执行其他任务

PDF的媒体大小为35.44 x 50.11英寸,这真的是原版的大小吗

鉴于您似乎经常使用OCR,我假设,一般来说,您的PDF文件只是由非常大的图像组成。在这种情况下,对文件大小的主要影响将来自对图像的下采样。如果查看,您可以看到/screen设置将图像采样降低到72 dpi,阈值为1.5(因此,超过72*1.5=107 dpi的图像将降低到72 dpi,任何低于此值的图像都被视为不值得)

您的PDF文件的媒体大小为35.44 x 50.11英寸。这是一个相当大的文件(26页),所以我只考虑第1页。在这个页面上,有一个图像和一堆不可见的文本,由Tesseract放置在那里。第1页上的图像是尺寸为24813508的8位RGB图像,它覆盖了整个页面

所以图像的分辨率是2481/35.44乘以3500/50.11=70.00x69.84

由于这小于72 dpi,pdfwrite不会对其进行采样

如果您的介质为8.5 x 11英寸,则图像的有效分辨率为2481/8.5乘以2500/11=291.8 x 318.18,因此采样减少了约4倍

然而。。。。。对我来说,你的“工作”PDF文件也有很大的媒体大小,而且图像也已经低于下采样分辨率。当我使用命令行运行该文件时,输出文件与输入文件的大小基本相同

因此,我不知道您是如何体验文件大小减小的。也许你也可以发布缩减后的文件

编辑

因此,文件通过Ghostscript后变小的原因是,绝大多数内容都是扫描的页面。这些图像以DCT编码图像(JPEG)的形式存储在PDF文件中

图像的分辨率足够低(见上文),因此不会进行下采样。然而,旧版本的Ghostscript的工作方式是,图像数据总是在读取时解压缩,然后在写入时重新压缩

因为JPEG是一种有损图像格式,这意味着解压缩和重新压缩的图像质量低于原始图像,而应用质量损失的方式意味着数据压缩效果更好

所以,Ghostscript工作方式的一个怪癖会导致质量下降,但文件变小。请注意,对于当前版本的Ghostscript,JPEG数据的传递将保持不变,除非您的配置要求对其进行采样或颜色转换

那么为什么它不压缩另一个文件呢?当然,对于当前的代码,这就是我正在使用的,它不会,因为图像不需要下采样或任何东西

现在,当我在这里运行一个旧版本的Ghostscript(9.10,之所以选择它,是因为这是您正在使用的工作缩减文件)时,我确实看到文件大小缩减了。它从26MB下降到15MB

当我查看您的“不工作”简化文件时,我发现它是由Ghostscript 9.23而不是Ghostscript 9.10生成的

因此,您看到行为差异的原因是,您已升级到更新版本的Ghostscript,它可以更好地保持图像数据不变


如果你真的想降低图像的质量,你可以设置
-dPassThroughJPEGImages=false
,但在我看来,你最好是获得原始PDF Corect的媒体大小(当然页面不是真正的35x50英寸?),或者将ColorImageResolution设置为较低的值。

嗨,谢谢你的回复。我的PDF看起来几乎一样,就像一个协会的年度报告,他们的标题页总是这样。所以第一页可能就是这样。然而,我感兴趣的是,如果更多的是减少文本页面,即文档的其余部分,我现在将包括我的工作pdf。我还注意到(我正在继续扫描/