2010-04-25 152 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();