如何使用Apache PDFBox从PDF文件提取文本
我想使用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.NullPointerExceptionat 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
未出现在控制台中。
因此,我认为我对类路径或其他东西有疑问。
谢谢。
回答:
我执行了您的代码,它工作正常。也许您的问题与FilePath
您提交的文件有关。我将pdf放入C盘,并对文件路径进行了硬编码。这是我的代码:
// PDFBox 2.0.8 require org.apache.pdfbox.io.RandomAccessRead// import org.apache.pdfbox.io.RandomAccessFile;
public class PDFReader{
public static void main(String args[]) throws IOException {
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
File file = new File("C:/my.pdf");
PDFParser parser = new PDFParser(new FileInputStream(file));
parser.parse();
try (COSDocument 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);
}
}
}
以上是 如何使用Apache PDFBox从PDF文件提取文本 的全部内容, 来源链接: utcz.com/qa/413247.html