Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用iText从pdf文件中提取数据_Java_Itext - Fatal编程技术网

Java 如何使用iText从pdf文件中提取数据

Java 如何使用iText从pdf文件中提取数据,java,itext,Java,Itext,我正在开发一个从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

我正在开发一个从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)
com.itextpdf.text.exceptions.InvalidPdfException:未找到FDF标头签名。
请访问com.itextpdf.text.pdf.PRTokeniser.checkFdfHeader(PRTokeniser.java:215)
请访问com.itextpdf.text.pdf.FdfReader.readPdf(FdfReader.java:95)
请访问com.itextpdf.text.pdf.PdfReader(PdfReader.java:169)
请访问com.itextpdf.text.pdf.PdfReader(PdfReader.java:158)
www.com.itextpdf.text.pdf.FdfReader.(FdfReader.java:63)
位于pdftests.pdftests.main(pdftests.java:39)
所以我想问一下这个例外的目的:)
谢谢各位。

您尝试加载的pdf文件可能不是pdf文件。或者它不包含FDF表单。请阅读上面的javadoc

您可以尝试以下代码更改并获得预期结果。
Change
PdfReader pr=new-FdfReader(“C:\\Users\\saviour\\Desktop\\doc308-999.pdf”)
PdfReader pr=newpdfreader(“C:\\Users\\saviour\\Desktop\\doc308-999.pdf”)

参考资料:


尝试更改文件位置。有时操作系统不允许其他应用程序从某些系统驱动器读取文件。放在D:等的某个地方

还要确保PDF中有足够的页面。(在阅读第二页后至少有2页)或尝试使用
parser.getTextFromPage(1)
等从其他页面获取内容

你可以再看看