【发布时间】:2020-10-05 14:12:01
【问题描述】:
我在 Mac Mini 上使用 MacOS Mojave,而且我还在使用无法读取 jpeg2000 图像的旧 Kindle Dx。它也有太多或太大的 jpeg 图像的问题。
我不能使用触摸屏,所以新的电子阅读器和平板电脑不是解决方案。
到目前为止,我发现了一些错误的解决方案--
我可以将 Willus 的 k2pdfopt 与 -mode copy 和 -dev dx 一起使用,它可以对所有内容进行光栅化。这是扫描 pdf 的一个很好的解决方案。如果需要更多细节,不带 -dev dx 的 -mode 复制将保留更高的分辨率。这是 pdf-born-pdfs 的最后手段,因为文本可能更丑陋且难以阅读,而且文件大小可能会惊人地增加。
我还可以使用带有 -dCompatibilityLevel=1.4 的 Ghostscript,它不会对所有内容进行光栅化。它将 jpeg2000 图像转换为 jpeg 图像。但它不能处理一些过大或结构不佳的图像,它经常会创建可以遮挡文本的深色矩形,并且偶尔会失去搜索或选择文本的能力。 [附:我的意思是它需要一个具有可搜索pdf的pdf并输出一个没有的pdf。此外,如果我对图像进行任何类型的下采样或删除,有时会重新缩放所有内容或丢失页面。]
我已经尝试了在 Ghostscript 中压缩图像的选项,结果喜忧参半,并且上述错误仍然存在。 [附:我想我是在下采样,是的。]
无论出于何种原因,MacOS Quartz 滤镜仅在它们可以减小图像尺寸时才有效。所以他们往往不会处理有问题的图像。
现在我的理想解决方案是保留文本本身,最好是解开连字,并像 Willus 的 k2pdfopt 那样压缩图像。但我不知道这是否可能或如何。
话不多说——我想知道是否有办法使用 Ghostscript 转换 jpeg2000 图像,而不会导致灰色矩形或失去搜索或选择文本的能力。
或者,如果有办法使用 Quartz 过滤器以便它们工作。在某些旧版本的 MacOS 中,它们确实有效。
或者如果有办法将这些 pdf 文件批量打印到适当的分辨率,显然是 800x1180,在此过程中重新处理图像。
我没有太多的编程经验。我主要用 homebrew 安装命令行工具,非常草率的 bash 脚本,用 Automator 来运行。
附:有关 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 out.pdf in.pdf
附言我可以使用 k2pdfopt 进行光栅化以适合我的 Kindle。如果文件有可搜索的文本,则保留它,如果没有,我可以在 k2 中运行 tesseract 或之后运行 ocrmypdf。
但如果我想要特别好的图形,或者特别清晰的文本,并且文件有数百页,则需要数百兆。我曾将此归咎于文本光栅化,这就是为什么我的理想解决方案是保留文本并光栅化图像,但显然这是图像本身的问题。
【问题讨论】:
标签: macos pdf pdf-generation ghostscript