2010-04-25 151 views
3

我在想如何通过Java将Word .doc/.docx文件转换为文本文件。据我所知,有一个选项在那里我可以做到这一点通过词本身,但我希望能够做这样的事情:如何将.doc或.docx文件转换为.txt

java DocConvert somedocfile.doc converted.txt 

感谢。

回答

7

如果您对处理Word文档文件的Java库感兴趣,可以查看如Apache POI。来自网站的报价:

为什么要使用Apache POI?

主要使用Apache POI API的是 对文本提取应用,如 网络蜘蛛,指数建设者和 内容管理系统。


附::另一方面,如果你只是在寻找一个转换工具,Stack Overflow可能不是最合适的地方。


编辑:如果你不希望使用现有的库,但做的所有努力工作你自己,你会很高兴地听到,微软已经公布了所需的文件格式规范。 (Microsoft Open Specification Promise列出了可用的规范,对于任何你感兴趣的任何人,只需google。在你的情况下,你需要例如OLE2复合文件格式,Word 97二进制文件格式和Open XML格式。)

+0

噢,对不起,我想建立我谈论的效用。 – 2010-04-25 21:01:33

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

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中提取文本。如果你只想提取文本,你可以使用下面的代码。如果你想提取Rich Text(例如格式和样式),你可以使用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();