带有OCR文本的PDF,如何将其从现有PDF中隐藏

时间:2017-01-31 16:30:07

标签: pdf ocr ghostscript

我有几个已经过OCR处理的PDF文件(不是我)。它们包含扫描图像和OCR文本。它们似乎在某些观众(iPhone / iPad)中运行良好,但在其他观看者(MacOS上的Preview.app)上却没有,这使得它们阅读起来有些尴尬。

从谷歌搜索,似乎文本&图像可能分层不正确或使用的字体有问题?我甚至不确定我是否正在使用正确的词汇,因为我得到的大部分命中都是毫无价值的。

是否可以使用ghostscript或其他东西批量修复这些文件?

“糟糕”渲染的示例: example

1 个答案:

答案 0 :(得分:4)

如果不看PDF文件就无法说出PDF文件(或查看者)的错误,这也很难提出解决方案!

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

当然,这不可能搜索或突出显示。

您可以使用-dFILTERIMAGE来删除原始图像,而不会留下文本。但是,原始文件中的任何非文本内容都会丢失。

通常的“最佳实践”是在渲染模式3中绘制文本,这不会产生任何标记。这使您可以在没有OCR文本干扰的情况下查看原始图像。您正在使用的查看器可能不遵循文本呈现模式,这将是查看器中的(相当严重的)错误。最新版本的MacOS似乎在Quartz PDF渲染引擎中有一些令人讨厌的错误。

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

修改 PDF文件首先绘制文本,然后在文本顶部绘制图像。不应出现基础文本。 mkl的评论非常正确。

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

唯一的其他解决方案是通过删除文本的内容来运行它。 Ghostscript可以做到这一点,但有影响;首先,将无法再从文档中搜索/复制/粘贴文本。其次,您需要运行相当复杂的命令行,以防止解压缩的JPX图像被重新压缩为JPEG,这可能会导致质量受损。最后,生成的文件大小会更大。