如果您发现一个文件不起作用,您应该将其报告为错误。当然没有任何“MagicDontHang”参数,尤其是因为挂起可能发生在 JasPer(因为您有一个非常旧的版本)或 OpenJPEG(在较新的版本中)。所以除了等待解码器返回数据之外,Ghostscript 无能为力。
此外,RedHat 包几乎肯定会使用系统共享库,我们不建议这样做,我们发布的源代码实际上是作为一个集成整体进行测试的(如果您使用的是系统共享库,显然不是这样),所以我们知道我们发布的版本与我们的代码一起使用。此外,我们确实在某些库中进行了一些修复,特别是 OpenJPEG,它们已在上游提供,但不一定(还)采用,因此我们发布的代码效果更好。
顺便说一句,我不知道你认为'-c <> setpagedevice' 做了什么,但它肯定不会'将 pdf 图像减少 10%'。除此之外,这个确切的命令是不合法的。
所以我的建议是忘记 RedHat 与您的特定 Linux 版本打包的任何版本,从 www.ghostscript.com 获取源代码并构建它,它将立即比 8.71 版好得多(4 年的错误修复和增强) 并且由于它不会使用系统共享库,因此它也会比您从打包程序中获得的更好,即使他们打包了 9.15。
哦,最后,如果通过 pdfwrite 设备运行带有 JPEG2000 图像的 PDF 文件的结果比原始文件小,我会感到非常惊讶,因为输出的 PDF 文件将使用不同的压缩方案。JPEG2000 编码器需要商业许可(它有许多相关的专利),所以我们不能将它用于 AGPL 版本。结果是输出文件中的图像数据几乎肯定会比输入文件大。由于图像数据在包含图像时通常包含 PDF 文件的大部分,这可能会导致输出文件的大小增加。