我正在使用Apache PDFBox 2.0.11使用PDFTextStripper
类从某些PDF文档中提取文本。这是用于提取的代码:
String pdfFilePath = "path/to/file.pdf";
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
try {
PDFParser parser = new PDFParser(new RandomAccessFile(new File(pdfFilePath), "r"));
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
String parsedText = pdfStripper.getText(pdDoc);
System.out.println(parsedText);
} catch (IOException e) {
e.printStackTrace();
}
我遇到的一个大问题是PDFBox错误地提取了某些单词(大多数是错误放置或完全丢失的字符)。特别是当涉及到“ La”(以波斯语:لا)时,它肯定会出错。 作为测试用例,我使用了一个包含一些简单单词(test-file.pdf)的PDF文件。在下表中,给出了原始单词和PDFBox输出:
因此,如果有人可以为所描述的问题提供一些解决方法,那将非常有帮助。