如何在Perl中解析.pdf文件?

时间:2011-05-12 12:28:06

标签: perl pdf

如何在Perl中解析.pdf文件? perl是更有效还是我应该使用任何其他语言?

4 个答案:

答案 0 :(得分:9)

当我想从PDF中提取文字时,我会使用pdftohtml输出选项将其提供给-xmlPoppler的一部分)。这将生成一个XML文件,我使用XML::Twig(或您喜欢的任何其他XML解析器除XML :: Simple)进行解析。

The XML format相当简单。您将获得PDF中每个页面的<page>元素,其中包含描述所用字体的<fontspec>元素以及每行文本的<text>元素。 <text>元素可能包含用于粗体和斜体文本的<b><i>标记(这就是为什么XML :: Simple无法正确解析它)。

您需要使用top标记的left<text>属性才能按正确顺序排列,因为它们不一定是从上到下排放的订购。坐标系在页面的左上角有0,0,向下和向右为正。尺寸采用PostScript点(每英寸72点)。

答案 1 :(得分:6)

我个人使用CAM :: PDF。

my $doc=CAM::PDF->new($fileName) || die "$CAM::PDF::errStr\n"; CAM::PDF>asciify(/$pdfString);`

Pdfs并非设计用于解析,而是用于显示/打印 - 因此任何事情都是尝试和错误的,如果一切都是图形,很可能无法解析。
一个很好的指标是你能否将pdf中的内容复制并粘贴到编辑器中。如果这样有效,那么你就是在做生意。

答案 2 :(得分:5)

查看the CPAN,具体来说,如果您想进行OCR,请参阅PDF::OCR2

答案 3 :(得分:4)

我不知道任何解析的模块,也就是说,如果要从中提取文本。有许多模块可以让你操作它们。试试PDF::API2