2012-04-09 342 views
0

PDFファイルからデータを抽出し、iTextをJavaライブラリとして使用しているプログラムで作業しています。私はこの方法で使用してファイルを開こうとすると:iTextを使用してpdfファイルからデータを抽出する方法

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

関連する問題