我正在尝试通过使用Apache POI(用于 doc、docx)和Apache PDFBox(用于 pdf)库将它们转换为单个字符串来读取和处理 Java 中的 .doc、.docx、.pdf 文件。
在遇到文本框之前它工作正常。如果格式是这样的:
第1段
文本框1
第2段
文本框2
第3段
那么输出应该是:
第1段文本框1第2段文本框2第3段
但我得到的输出是:
第1段第2段第3段文本框1文本框2
它似乎是在末尾添加文本框,而不是在它应该在的地方,即段落之间。这个问题在 doc 和 pdf 文件中都有。这意味着 POI 和 PDFBox 这两个库都出现了同样的问题。
读取pdf文件的代码是:
void pdf(字符串文件)抛出 IOException {
//初始化文件
文件 myFile = 新文件(文件);
PDDocument pdDoc = null;
尝试 {
//加载PDF
pdDoc = PDDocument.load(myFile);
//创建提取器
PDFTextStripper pdf = new PDFTextStripper();
//提取文本
输出 = pdf.getText(pdDoc);
}
最后 {
如果(pdDoc!= null)
//关闭文档
pdDoc.close();
}
}
doc文件的代码是:
无效文档(字符串文件)抛出 FileNotFoundException,IOException {
文件 myFile = null;
WordExtractor 提取器 = null ;
//初始化文件
我的文件 = 新文件(文件);
//创建文件输入流
FileInputStream fis=new FileInputStream(myFile.getAbsolutePath());
//打开文档
HWPFDocument 文档=新 HWPFDocument(fis);
//创建提取器
extractor = new WordExtractor(document);
//从文档中获取文本
输出 = extractor.getText();
}