2012-04-09 47 views
0

我正在從PDF文件中提取數據,我正在使用iText作爲java庫的程序。當我嘗試打開使用此方法的文件:如何從PDF文件中提取數據使用iText的文件

public static void main(String[] args) { 
    try { 
     // TODO code application logic here 

     PdfReader pr=new FdfReader("C:\\Users\\saviour\\Desktop\\doc308-999.pdf"); 

     String str=PdfTextExtractor.getTextFromPage(pr, 2); 
     System.out.println(str); 

    } catch (IOException ex) { 
     Logger.getLogger(PDFTests.class.getName()).log(Level.SEVERE, null, ex); 
    } 

} 

我有這樣的錯誤:

com.itextpdf.text.exceptions.InvalidPdfException: FDF header signature not found. 
    at com.itextpdf.text.pdf.PRTokeniser.checkFdfHeader(PRTokeniser.java:215) 
    at com.itextpdf.text.pdf.FdfReader.readPdf(FdfReader.java:95) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:169) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:158) 
    at com.itextpdf.text.pdf.FdfReader.<init>(FdfReader.java:63) 
    at pdftests.PDFTests.main(PDFTests.java:39) 

所以我問這個例外的目的:) 謝謝你們。

回答

1

您嘗試加載的PDF文件可能不是pdf文件。或者它不包含FDF表格。請閱讀InvalidPdfException上的javadoc。

您可以嘗試以下代碼更改並獲得預期結果。
變化PdfReader pr=new FdfReader("C:\\Users\\saviour\\Desktop\\doc308-999.pdf");
PdfReader pr=new PdfReader("C:\\Users\\saviour\\Desktop\\doc308-999.pdf");

參考文獻:

1

嘗試更改文件位置。有時OS不允許其他應用程序從某些系統驅動器讀取文件。放在D的某個地方:等等。

還要確保在PDF中有足夠的頁面。 (至少2頁,因爲你正在閱讀第2頁)或嘗試與parser.getTextFromPage(1)等從其他頁面獲取內容。

您可以看更多外觀here

相關問題