如何将.doc或.docx文件转换为.txt

3
我想知道如何通过Java将Word .doc/.docx文件转换为文本文件。我知道可以通过Word本身完成此操作,但我想像这样做:
java DocConvert somedocfile.doc converted.txt

谢谢。
4个回答

7
如果您对处理Word文档文件的Java库感兴趣,可以看看Apache POI。以下是该网站的一句引用:

我为什么要使用Apache POI?

Apache POI api的主要用途是文本提取应用程序,例如网络爬虫、索引构建器和内容管理系统。


P.S.: 另一方面,如果您只是在寻找转换实用程序,则Stack Overflow可能不是最合适的地方。


编辑: 如果您不想使用现有的库而是自己完成所有艰苦的工作,那么您会高兴地听到Microsoft已经发布了所需的文件格式规范。(Microsoft开放规范承诺列出了可用的规范。只需搜索您感兴趣的任何规范即可。在您的情况下,您需要的是OLE2复合文件格式、Word 97二进制文件格式和Open XML格式。)


哦,抱歉,我想要构建我所说的实用工具。 - Coding District

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。
提取doc:
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();

1

你应该考虑使用这个库。它是Apache POI

来自网站的摘录

简而言之,您可以使用Java读写MS Excel文件。此外,您还可以使用Java读写MS Word和MS PowerPoint文件。Apache POI是您的Java Excel解决方案(适用于Excel 97-2008)。我们有一个完整的API,可用于移植其他OOXML和OLE2格式,并欢迎其他人参与。


0

Docmosis可以读取文档并将其中的文本输出。需要安装一些基础设施(如OpenOffice)。 您也可以使用JODConverter


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接