如何使用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.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未出现在控制台中。

因此,我认为我对类路径或其他东西有疑问。

谢谢。

回答:

我执行了您的代码,它工作正常。也许您的问题与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

回到顶部