ghostscript和jpeg2000图像

时间:2014-10-30 17:16:36

标签: ghostscript jpeg2000

使用gs 8.71,RedHat

我无法转换嵌入了jpeg2000图像的pdf文件。编码的一部分是使用-c<>将pdf图像减少10%。 setpagedevice命令。如果pdf文件没有jpeg2000图像,此命令将正常工作;但是,如果pdf文件确实有JPEG2000图像,ghostscript命令将挂起并产生错误:无法处理JPXDecode数据。页面将缺少数据"。

是否有任何参数我可以传递给gs以允许它在遇到jpeg2000图像时不挂起?我们可以处理jfg2000图像的pdf文件不正确,但是在执行时无法处理该程序。

我也尝试编译gs 9.15并在RedHat下运行(结果更好但不是很好)但更喜欢使用RedHat中的最新版本。

1 个答案:

答案 0 :(得分:0)

如果您发现某个文件不起作用,则应将其报告为错误。肯定没有任何'MagicDontHang'参数,尤其是因为挂起可能发生在JasPer(因为你有一个非常旧版本)或OpenJPEG(在较新版本中)。所以除了等待解码器返回数据之外,Ghostscript不能做任何事情。

此外,RedHat软件包几乎肯定会使用我们推荐的系统共享库,我们发布的源代码实际上是作为一个集成的whoel进行测试的(显然不是您正在使用系统共享库),因此我们知道我们发布的版本与我们的代码一起使用。我们在某些库中也有一些修复,特别是OpenJPEG,它们已经上游提供但尚未采用(但是),因此我们发布的代码效果更好。

顺便说一句,我不知道你的想法'-c<> setpagedevice'确实如此,但肯定不会'将pdf图像减少10%'。除了其他任何东西,这个确切的命令是不合法的。

所以我的建议是忘记RedHat在您的特定版本的Linux上打包的任何版本,从www.ghostscript.com获取源代码并构建它,它将立即比版本8.71(4年的bug)更好修复和增强)因为它不会使用系统共享库,所以它会比你从包装器中得到的更好,即使它们打包了9.15。

哦,最后,如果通过pdfwrite设备运行带有JPEG2000图像的PDF文件的结果小于原始文件,我会非常惊讶,因为输出PDF文件将使用不同的压缩方案。 JPEG2000编码器需要商业许可证(它具有许多相关专利),因此我们不能将其用于AGPL版本。结果是输出文件中的图像数据几乎肯定比输入更大。由于图像数据在包含图像时通常包含PDF文件的大部分内容,因此可能会导致输出文件的增加大小。