我想知道如何通过Java将Word .doc/.docx文件转换为文本文件。我知道可以通过Word本身完成此操作,但我想像这样做:
谢谢。
java DocConvert somedocfile.doc converted.txt
谢谢。
我为什么要使用Apache POI?
Apache POI api的主要用途是文本提取应用程序,例如网络爬虫、索引构建器和内容管理系统。
P.S.: 另一方面,如果您只是在寻找转换实用程序,则Stack Overflow可能不是最合适的地方。
编辑: 如果您不想使用现有的库而是自己完成所有艰苦的工作,那么您会高兴地听到Microsoft已经发布了所需的文件格式规范。(Microsoft开放规范承诺列出了可用的规范。只需搜索您感兴趣的任何规范即可。在您的情况下,您需要的是OLE2复合文件格式、Word 97二进制文件格式和Open XML格式。)
使用命令行实用工具Apache Tika。Tika支持广泛的格式(例如:doc、docx、pdf、html、rtf等)。
java -jar tika-app-1.3.jar -t somedocfile.doc > converted.txt
编程实现:
File inputFile = ...;
Tika tika = new Tika();
String extractedText = tika.parseToString(inputFile);
InputStream fis = new FileInputStream(...);
POITextExtractor extractor;
// if docx
if (fileName.toLowerCase().endsWith(".docx")) {
XWPFDocument doc = new XWPFDocument(fis);
extractor = new XWPFWordExtractor(doc);
} else {
// if doc
POIFSFileSystem fileSystem = new POIFSFileSystem(fis);
extractor = ExtractorFactory.createExtractor(fileSystem);
}
String extractedText = extractor.getText();
你应该考虑使用这个库。它是Apache POI。
来自网站的摘录
简而言之,您可以使用Java读写MS Excel文件。此外,您还可以使用Java读写MS Word和MS PowerPoint文件。Apache POI是您的Java Excel解决方案(适用于Excel 97-2008)。我们有一个完整的API,可用于移植其他OOXML和OLE2格式,并欢迎其他人参与。