2011-02-16 30 views
2

我有一個pdf,只包含文本,沒有特殊字符,也沒有圖像等。 有沒有Perl模塊(看看cpan無濟於事)來幫助我逐行解析每一頁? (轉換的PDF文本產量壞的結果和不可分析的數據)使用-xml輸出選項Perl PDF逐行解析器?

感謝,

+2

PDF不是一個文本文件。這甚至不是純文本標記。 – delnan 2011-02-16 20:30:50

+2

你用什麼程序將PDF轉換爲文本,pdftotext? http://en.wikipedia.org/wiki/Pdftotext – Erik 2011-02-16 20:30:51

回答

5

當我想從PDF提取文本,我將其提供給pdftohtml(的Poppler一部分)。這會生成一個XML文件,我使用XML::Twig(或者除XML :: Simple之外的任何其他XML解析器)進行解析。

The XML format相當簡單。對於PDF中的每個頁面,您會得到一個<page>元素,其中包含描述所用字體的<fontspec>元素以及每行文本的<text>元素。 <text>元素可能包含用於粗體和斜體文本的<b><i>標籤(這就是XML :: Simple無法正確解析它的原因)。

你需要使用<text>標籤的topleft屬性,讓他們在正確的順序,因爲它們不是在頂部到底部的順序不一定發出。座標系統在頁面的左上角有0,0,向下和向右是正的。尺寸採用PostScript點(每英寸72點)。