如何在Perl中解析.pdf文件? perl是更有效还是我应该使用任何其他语言?
答案 0 :(得分:9)
当我想从PDF中提取文字时,我会使用pdftohtml
输出选项将其提供给-xml
(Poppler的一部分)。这将生成一个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)
答案 3 :(得分:4)
我不知道任何解析的模块,也就是说,如果要从中提取文本。有许多模块可以让你操作它们。试试PDF::API2。