我正在使用 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”(波斯语:لا)时,几乎肯定会出错。作为一个测试用例,我使用了一个包含几个简单单词的 PDF 文件(test-file.pdf)。在下表中,给出了原始单词和 PDFBox 输出:
因此,如果有人可以为所描述的问题提供一些解决方法,那将是非常有帮助的。