我如何获取pdf文件,并将其中的任何jpeg2000 / jpx / jp2图像转换为jpeg图像?

问题描述 投票:0回答:1

我正在Mac Mini上使用MacOS Mojave,并且我也在使用旧的Kindle Dx,它无法读取jpeg2000图像。太大或太大的jpeg图片也有麻烦。

我无法使用触摸屏,因此较新的电子阅读器和平板电脑不是解决方案。

到目前为止,我已经找到了一些有问题的解决方案-

我可以将Willus的k2pdfopt与-mode copy和-dev dx一起使用,这会光栅化所有内容。这是扫描pdf的好解决方案。如果需要更多详细信息,则不带-dev dx的-mode copy将保留更高的分辨率。对于pdf-born-pdf,这是不得已的做法,因为文本可能更丑陋且更难以阅读,并且文件大小可能会惊人地增加。

我还可以将Ghostscript与-dCompatibilityLevel = 1.4一起使用,这不会光栅化所有内容。它将jpeg2000图像转换为jpeg图像。但是,它不能处理某些过大或结构不佳的图像,它经常创建会遮盖文本的深色矩形,并且有时会失去搜索或选择文本的能力。 [附言我的意思是,它需要一个具有可搜索pdf的pdf并输出一个没有pdf的pdf。另外,如果我进行任何类型的图像下采样或去除操作,有时会重新缩放所有内容或丢失页面。]

我已经尝试过使用Ghostscript压缩图像的选项,但取得了不同的成功,并且上述错误仍然存​​在。 [附言我想我正在降低采样率,是。]

出于任何原因,MacOS Quartz过滤器只有在减小图像尺寸时才起作用。因此,它们往往无法处理错误的图像。

现在,我理想的解决方案将保留文本本身,最好是解开连字,并压缩像Willus的k2pdfopt这样的图像。但我不知道这是否可行或如何。

简短地说-我想知道是否有一种方法可以使用Ghostscript转换jpeg2000图像而不会导致灰色矩形或失去搜索或选择文本的能力。

或是否有使用Quartz过滤器的方法使它们工作。在某些旧版本的MacOS中,它们确实起作用。

或者如果有一种方法可以将这些pdf文件批量打印为适当的分辨率,显然是800x1180,则在此过程中重新处理图像。

我没有太多的编程经验。我主要使用自制软件来安装命令行工具,非常草率的bash脚本以及使用Automator来运行它们。

P.S。有关Ghostscript中灰色矩形的最小示例,请使用此处的免费pdf:https://www.peginc.com/store/test-drive-savage-worlds-the-wild-hunt/

gs -sDEVICE = pdfwrite -dNOPAUSE -dQUIET -dBATCH -o out.pdf in.pdf

用那个pdf替换in.pdf。

关于丢失可搜索文本的最小示例,请使用此处的免费pdf:http://datafortress2020.com/fileproject/details.php?image_id=498

相同的最小脚本

兼容级别

gs -sDEVICE = pdfwrite -dNOPAUSE -dQUIET -dBATCH -dCompatibilityLevel = 1.4 -o out.pdf in.pdf

积极的下采样和灰度

gs -sDEVICE = pdfwrite -dNOPAUSE -dQUIET -dBATCH -dCompatibilityLevel = 1.4-g800x1080 -r150 -dPDFFitPage \ -dFastWebView -sColorConversionStrategy =灰色\ -dDownsampleColorImages = true -dDownsampleGrayImages = true -dDownsampleMonoImages = true -dColorImageResolution = 75 -dGrayImageResolution = 75 -dMonoImageResolution = 150 -dColorImageDownsampleThreshold = 1.0 -dGrayImageDownsampleThreshold = 1.0 -dMonoImageDownsampleThreshold = 1.0 \ -o> pdf。

我正在Mac Mini上使用MacOS Mojave,并且我也在使用旧的Kindle Dx,它无法读取jpeg2000图像。太大或太大的jpeg图像也有麻烦。我无法使用触摸屏,...

macos pdf pdf-generation ghostscript
1个回答
0
投票

如果您认为自己已发现错误,则对其进行报告很有帮助。如果您不这样做,它将永远不会被修复。您可以在https://bugs.ghostscript.com报告一个错误,请确保附上示例文件以重现该问题并声明所使用的命令行。

© www.soinside.com 2019 - 2024. All rights reserved.