2012-07-10 15 views
7

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

我正在寻找PDF的技术规范。我认为文本可以通过两种方式存储到PDF文件中: a)作为图像层上方的文本层(如上面的网页中所述) b)当您从Word文档(带有文本)创建PDF时,I不要以为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引擎?

+0

通常,在OCR之后,文本会以'不可见'的文本呈现模式添加到PDF的* normal *内容中(不是额外的*图层*,这是不可见的 - 这也是PDF中的技术可能性;在PDF规范中查找*可选内容*)。----但是,在真实世界的PDF中(既有'扫描'也有'正常'PDF),你会经常发现你可以选择文本并复制它 - 但是粘贴之后,你只会有gobbledigook。或者,如果你在这样的文件上使用'pdftotext' ...如果是这样,那么这是使用字体的*编码*的问题.... – 2012-07-10 17:51:30

回答

7

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

执行OCR的扫描程序将光栅图像和文本同时呈现给PDF文档。文本使用不可见的文本呈现模式呈现。结果是您可以使用鼠标选择文本(高亮区域将显示在图像顶部的预期位置),您可以搜索文本。搜索结果再次显示在正确的位置。

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

XMP是与可视数据相对的元数据。

最后,关于检测PDF是否包含文本数据的问题,这里是一个similar question

+0

谢谢弗兰克。明确的答案! – 2012-07-10 17:43:03

+0

我有一些其他问题: * PDF的每个版本(http://en.wikipedia.org/wiki/Portable_Document_Format#Adobe.27s_versions)都包含文本吗?在格式中是否有规范说明如何存储文本?
*如果您的PDF已经被OCR了,但是您再次使用另一个OCR引擎“重新OCR”,那么以前的OCR文本会发生什么? – 2012-07-10 17:45:40

+0

@JochenHebbrecht:看看我的答案。它还提供了该规范的链接。 **当然**规范中有关于如何存储文本的确切规则(但在Wikipedia中找不到它们)。 – 2012-07-10 19:06:05

3

我赞成弗兰克雷姆的答案,因为它是'完整的'。

然而,让我再补充一些细节:

  1. 文本的“隐形”来自Tr,在PDF中的文本渲染模式3操作:“无论是补也不是中风文本”(PDF-1.7 spec, Chapter 9.3.6)
  2. 看看这个超级用户的问题:"PDF has an extra blank in all words after running through Ghostscript"和我在那里的答案,了解一些关于技术细节的更多信息(尤其是看看标题为的那个“我们如何让隐形文字可见?” )。
+0

谢谢,2)点中的链接对我来说很清楚!你是一个亲! :-) – 2012-07-11 07:19:36