Ken*_* K. 5 pdf pdf-generation text-extraction
我试图更好地理解PDF如何存储文本.一般来说,当从MS Word(或我的SQL Server Reporting Services)等应用程序创建PDF时,PDF如何存储文本?我希望在这个特定场景中生成的文档不会像原始PDF文档是从图像创建的那样进行OCR.
为了更详细一点,我试图了解PDF文本提取器的工作原理.我对PDF的初步了解是,它存储了(PostScript)有关如何将文档的"图像"绘制到页面或打印机的说明,并且文档本身中没有包含实际文本.随后,我认为文本提取器可能会对这些指令进行反向工程,以生成PDF本来会生成的文本.不过,我对此并不自信.
PDF包含几种不同类型的对象; 不仅是矢量或光栅绘图指令.特别是文本由文本元素表示.这些包括应使用特定字体在特定位置绘制的字符串.
从PDF文本中提取文本可能是一件复杂的事情,因为文件格式是面向页面布局的.文本元素可以是整个段落,也可以是单个字符.如果混合不同的字体,即使单个单词也可能由多个文本元素组成.而且,字符不一定用诸如Unicode的标准编码来编码.它们可以以特定于特定字体的方式编码.
如果您足够幸运地处理标记PDF文件(如PDF/A或PDF/UA),则文本提取可以更加容易,因为文本跨度被识别为这样,并且定义了到Unicode字符的映射.
维基百科没有完整的规范,但作为介绍:http://en.wikipedia.org/wiki/Portable_Document_Format#Text