【发布时间】:2014-07-11 21:33:36
【问题描述】:
我想使用 Apache PDFBox 从给定的 PDF 文件中提取文本。
我写了这段代码:
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
File file = new File(filepath);
PDFParser parser = new PDFParser(new FileInputStream(file));
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
pdfStripper.setStartPage(1);
pdfStripper.setEndPage(5);
String parsedText = pdfStripper.getText(pdDoc);
System.out.println(parsedText);
但是,我收到以下错误:
Exception in thread "main" java.lang.NullPointerException
at org.apache.fontbox.afm.AFMParser.main(AFMParser.java:304)
我在类路径中添加了 pdfbox-1.8.5.jar 和 fontbox-1.8.5.jar。
编辑
我在程序的开头添加了System.out.println("program starts");。
我运行了它,然后我得到了与上面提到的相同的错误,并且program starts 没有出现在控制台中。
因此,我认为我的类路径或其他东西有问题。
谢谢。
【问题讨论】:
-
可能您的 PDF 文件不完全有效,导致 PDFBox 出错。您可能需要提供 PDF 以供检查。
-
您确定您启动了正确的
main()方法吗?异常看起来像是您启动了org.apache.fontbox.afm.AFMParser的main(),它看起来像 PDFBox 代码,而不是您的代码。 -
你是对的。我重置了运行配置,现在程序可以工作了。非常感谢你,mkl。