10

我试图更好地理解 PDF 如何存储文本。一般来说,当从 MS Word(或在我的情况下为 SQL Server Reporting Services)等应用程序创建 PDF 时,PDF 如何存储文本?我希望生成的文档在这种特定情况下不会像原始 PDF 文档是从图像创建的那样进行 OCR。

为了更详细一点,我试图了解 PDF 的文本提取器是如何工作的。我对 PDF 的最初理解是它存储了(PostScript)关于如何将文档的“图像”绘制到页面或打印机的说明,并且文档本身中不包含实际的文本。随后,我认为文本提取器可能会对此类指令进行逆向工程,以生成 PDF 否则会生成的文本。不过,我对此没有信心。

4

1 回答 1

11

PDF 包含几种不同类型的对象;不仅是矢量或光栅绘图指令。尤其是文本由文本元素表示。其中包括应使用特定字体在某些位置绘制的字符串。

从 PDF 中提取文本可能是一件复杂的事情,因为文件格式面向页面布局。文本元素可以是整个段落,也可以是单个字符。如果混合了不同的字体,即使一个单词也可能包含多个文本元素。此外,字符不一定以标准编码(如 Unicode)进行编码。它们可能以特定于特定字体的方式编码。

如果您有幸处理带标签的 PDF文件,例如PDF/APDF/UA,那么文本提取会容易得多,因为文本跨度是这样标识的,并且定义了到 Unicode 字符的映射。

维基百科没有完整的规范,但可以作为介绍:http ://en.wikipedia.org/wiki/Portable_Document_Format#Text

于 2013-03-25T19:06:25.067 回答