2

我有一个 pdf,仅包含文本,没有特殊字符或图像等。是否有任何 Perl 模块(一直在查看 cpan 无济于事)来帮助我逐行解析每一页?(将 PDF 转换为文本会产生不良结果和无法解析的数据)

谢谢,

4

1 回答 1

6

当我想从 PDF 中提取文本时,我使用output 选项将其提供给pdftohtmlPoppler的一部分)。-xml这会生成一个 XML 文件,我使用XML::Twig(或您喜欢的任何其他 XML 解析器,除了 XML::Simple)来解析它。

XML 格式相当简单。您会<page>为 PDF 中的每一页获得一个元素,其中包含<fontspec>描述所用字体的<text>元素和每行文本的元素。<text>元素可能包含粗体<b>和斜体文本的<i>标记(这就是 XML::Simple 无法正确解析它的原因)。

您确实需要使用标签的topleft属性<text>以正确的顺序获取它们,因为它们不一定按从上到下的顺序发出。坐标系在页面的左上角有 0,0,向下和向右是正数。尺寸以 PostScript 点为单位(每英寸 72 点)。

于 2011-02-16T22:39:40.617 回答