带有可见 OCR 文本的 PDF,如何从现有 PDF 中隐藏它

PDF with OCR text visible, how to hide it from existing PDF

我有几个经过 OCR 处理的 PDF 文件(不是我处理的)。它们包含扫描图像和 OCR 文本。它们在某些查看器 (iPhone/iPad) 中似乎工作正常,但在其他查看器中(Preview.app 在 macOS 上)似乎效果不佳,这使得它们阅读起来有些尴尬。

通过谷歌搜索,似乎文本和图像的分层不正确或者使用的字体有问题?我什至不确定我使用的词汇是否正确,因为我得到的大多数点击都是毫无价值的。

是否可以使用 ghostscript 或其他工具来批量修复这些文件?

"bad" 渲染示例:

如果没有看到 PDF 文件,就不可能说出 PDF 文件(或查看器)有什么问题,这也很难提出解决方案!

您当然可以通过 Ghostscript 运行 将文件发送到 pdfwrite 设备,并使用 -dFILTERTEXT 开关不处理文本。因此,生成的文档不会包含有问题的文本,但仍会包含图像。

当然,这将无法搜索或突出显示。

您可以改用 -dFILTERIMAGE,它会删除原始图像,留下文本。但是原始文档中所有非文本的内容现在都将丢失。

通常'best practice'是用渲染模式3绘制文字,不做标记。这使您可以看到原始图像,而不会受到 OCR 文本的干扰。您使用的查看器可能不支持文本呈现模式,这将是查看器中的一个(相当严重的)错误。最新版本的 MacOS 似乎在 Quartz PDF 渲染引擎中有一些讨厌的错误。

另一种方法是先绘制文本,然后将原始图像放在上面,但这很难出错,我怀疑它更可能是文本渲染模式。

编辑 PDF 文件首先绘制文本,然后在文本之上绘制图像。底层文本不应出现。 mkl 的评论非常正确。

解决此问题的正确方法是修复错误呈现它的消费者。正如我上面提到的,最新版本的 Quartz 似乎有一些相当严重的错误,您可以选择将其作为 Apple 的错误提出。

唯一的其他解决方案是 运行 通过删除文本的方式解决此问题。 Ghostscript 可以做到这一点,但也有影响;首先,将不再可能 search/copy/paste 文档中的文本。其次,您需要 运行 相当复杂的命令行,以防止解压缩的 JPX 图像被重新压缩为 JPEG,这可能会导致质量下降。最后生成的文件大小会更大。