我想知道如何通过Java将Word .doc / .docx文件转换为文本文件。我知道有一个选项,我可以通过Word本身做到这一点,但我希望能够做到这样的事情:
java DocConvert somedocfile.doc converted.txt
感谢。
答案 0 :(得分:7)
如果您对处理Word文档文件的Java库感兴趣,可能需要查看例如: Apache POI。来自网站的引用:
我为什么要使用Apache POI?
Apache POI api的一个主要用途是 用于文本提取应用程序 作为网络蜘蛛,索引建设者和 内容管理系统。
PS :另一方面,如果您只是在寻找转换实用程序,Stack Overflow可能不是最合适的地方。
编辑:如果您不想使用现有的库,而是自己完成所有艰苦的工作,您会很高兴听到Microsoft已发布所需的文件格式规范。 (Microsoft Open Specification Promise列出了可用的规范。只需谷歌搜索您感兴趣的任何一个。在您的情况下,您需要例如OLE2复合文件格式,Word 97二进制文件格式和Open XML格式。)
答案 1 :(得分:4)
使用命令行实用程序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);
您也可以使用 Apache POI 。他们有一个从doc / docx Text Extraction中提取文本的工具。如果您只想提取文本,可以使用下面的代码。如果要提取富文本(例如格式和样式),可以使用Apache Tika。
提取文档
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();
答案 2 :(得分:1)
您应该考虑使用此库。它的Apache POI
摘自网站
简而言之,您可以读写MS 使用Java的Excel文件。此外, 你可以读写MS Word和MS 使用Java的PowerPoint文件。阿帕奇 POI是您的Java Excel解决方案(适用于 Excel 97-2008)。我们有完整的API 用于移植其他OOXML和OLE2 格式并欢迎其他人 参与。
答案 3 :(得分:0)
Docmosis可以阅读文档并吐出文本。需要安装一些基础架构(例如OpenOffice)。 您也可以使用JODConverter。