15

根据该站点http://www.searchable-pdf.com/content.php?lang=en&c=61,添加文本层后可以搜索 PDF。

我正在寻找 PDF 的技术规范。我认为文本可以以两种方式存储到 PDF 中:a)作为图像层上方的文本层(如上面的网页中所述)b)当您从 Word 文档(带文本)创建 PDF 时,我不t 认为 Word 会将所有文本存储在文本层中。我认为它会将其存储在图像层中?正确的?

从 PDF 1.4 开始,添加了 XMP (http://en.wikipedia.org/wiki/Extensible_Metadata_Platform)。但是什么是 XMP?这是我上面讨论的“文本层”吗?

如果扫描仪正在对图像执行 OCR,它是否将文本存储在“文本层”中?还是“XMP”字段?这只能在 PDF 版本为 1.4 时出现?

以及如何检测 PDF 是否已经包含文本数据?例如:PDF A 已使用 OCR 进行扫描,而 PDF B 则没有。我怎么知道应该将 PDF B 发送到单独的 OCR 引擎?

4

2 回答 2

12

PDF 规范没有提到“文本层”。通常,只有一种“存储”文本的方法:通过文本显示运算符。这些运算符使用特定的颜色、字体、字体大小和文本渲染模式在特定位置绘制文本。有几种文本渲染模式。为了回答您的问题,文本可以是可见的或不可见的。

执行 OCR 的扫描仪将光栅图像和文本呈现到 PDF 文档。使用不可见文本呈现模式呈现文本。结果是您可以使用鼠标选择文本(突出显示的区域将显示在图像顶部的预期位置)并且您可以搜索文本。搜索结果将再次显示在正确的位置。

从 Word 文档生成 PDF 时会发生什么取决于您用于转换的软件。据我所知,这些转换器不会生成图像,但它们会生成可见文本。

XMP 是元数据,而不是视觉数据。

最后,关于您关于检测 PDF 是否有文本数据的问题,这里有一个类似的问题(仅限 10k)

于 2012-07-10T14:44:37.320 回答
7

我赞成 Frank Rem 的回答,因为它是“完整的”。

不过,让我添加一些细节:

  1. 文本的“不可见性”来自PDFTr中的文本渲染模式 3运算符:“既不填充也不描边文本” (PDF-1.7 规范,第 9.3.6 章)
  2. 看看这个超级用户问题:“PDF 在运行 Ghostscript 后所有单词都有一个额外的空白”和我在那里的答案,以了解更多关于技术细节的东西(尤其是看标题为“如何我们使不可见的文本可见吗?”)。
于 2012-07-10T17:45:09.173 回答