首页 文章

隐藏文本如何存储在OCR增强的PDF文件中

提问于
浏览
1

//编辑26.03.2018 - 谁想继续我的工作可以查看我的源文件https://github.com/n0l0cale/ocr-sampledata

我实际上正在寻找有关PDF文件的一些细节 . 对我来说最重要的是文件可以使用很长时间,如果可能的话,OCR应该自动应用于新文件(这似乎是Adobe Acrobat无法实现的......) .

为此,我一直在寻找不同的解决方案如何OCR我的PDF文件 . 我发现有三个候选人似乎正在做他们应该做的事情......(或多或少) . 但是这三种变体都有它们的优点和缺点......但似乎有不同的方法如何在PDF文件中存储数据....对于所有三个变体...让我解释一下:

  • 使用Adobe Acrobat OCRed的文件:

https://github.com/n0l0cale/ocr-sampledata/blob/master/A4%20sample_ACROBAT.pdf

导致Acrobat能够一步打开的文件(没有预加载任何背景图层),并且在预检脚本之后我能够看到隐藏存储的文本:

Preflight analysed layers

  • 使用Abby Finereader OCR的文件:

https://github.com/n0l0cale/ocr-sampledata/blob/master/A4%20sample_ABBY.pdf

似乎不适合默认的adobe preflight脚本,因为它不显示任何其他图层:

Preflight analysed layers

但是我能够重现这些文件似乎有一个Background-Text-Layer,它包含OCRed Text,它是最终向用户显示的Image的底层 . 不幸的是,这似乎是单独加载的,这在用Adobe Acrobat打开文件时会让人感到困惑......

  • 使用Tesseract 4(Alpha)OCRed的文件:

https://github.com/n0l0cale/ocr-sampledata/blob/master/A4%20sample_TESSERACT_oem2.pdf

隐藏的文本部分也在做一些奇怪的魔术:

Preflight analysed layers

但在所有三种情况下,我都能够搜索文件中的单词并使用“删除隐藏信息”并选择“隐藏文本”来查看文本:

View of "Remove hidden text" function in Adobe Acrobat DC Pro

我很困惑....有谁知道这些程序是如何存储他们隐藏的文本信息的?

S.

P.S . :对于那些想知道这个不祥的预检剧本是什么的人:https://theblog.adobe.com/hidden-gems-in-acrobat-dc-how-to-optimize-hidden-ocr-text/

1 回答

  • 3

    有谁知道这些程序如何存储他们隐藏的文本信息呢?

    您正确地发现Abby Finereader的方法与Adobe Acrobat和Tesseract的方法不同:

    • Abby创建一个页面内容流,首先在页面上正常绘制文本,最终由扫描图像覆盖 .

    • Acrobat和Tesseract创建内容流,首先绘制图像,然后无形地绘制文本(使用文本渲染模式3,不绘制任何内容) .

    后两种结果的区别在于使用的字体选择:

    • Acrobat使用常规标准14种字体,PDF查看器有一个字体程序将它们渲染为普通字形 .

    • Tesseract使用字体 GlyphLessFont 将字体程序嵌入到结果文件中 . 渲染时,此字体中的字形不会显示为我们的普通拉丁字形,而只显示为空格 .

    考虑到您观察到的Abby结果的视觉效果,Acrobat或Tesseract使用的方法可能更可取 .

    无论是喜欢具有视觉识别字形的字体(如Acrobat使用的字体)还是没有(如Tesseract所使用的)字体,大多只是品味问题 . 它们仅用于隐形渲染模式 .

相关问题