0

PDFファイルからデータを抽出するプログラムに取り組んでおり、iTextをJavaライブラリとして使用しています。この方法を使用してファイルを開こうとすると:

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)

だから私はこの例外の目的について尋ねています:)ありがとうございます。

4

2 に答える 2

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");

参考文献:

于 2012-04-09T19:08:10.067 に答える
1

ファイルの場所を変更してみてください。場合によっては、OS によって、他のアプリケーションによる一部のシステム ドライブからのファイルの読み取りが許可されないことがあります。D: などのどこかに入れます。

また、PDF に十分なページがあることを確認してください。(2ページ目を読んでいるので、少なくとも2ページ)またはparser.getTextFromPage(1)他のページからコンテンツを取得するなどを試してください。

詳しくはこちらをご覧ください。

于 2012-04-11T06:27:29.850 に答える