Tika解析word文件


Tika解析word文件

Apache Tika是一個內容抽取的工具集合(a toolkit for text extracting)。它集成了POI, Pdfbox 並且為文本抽取工作提供了一個統一的界面。其次,Tika也提供了便利的擴展API,用來豐富其對第三方文件格式的支持。

Tika提供了對如下文件格式的支持:

PDF - 通過Pdfbox、MS-* - 通過POI、HTML - 使用nekohtml將不規范的html整理成為xhtml、OpenOffice 格式 - Tika提供、Archive - zip, tar, gzip, bzip等、RTF - Tika提供、Java class - Class解析由ASM完成、Image - 只支持圖像的元數據抽取。

詳細支持請登陸Apache Tika查詢

礙於作者能力有限,本問僅介紹Tika如何解析word文件。

引入依賴

<dependency>
			<groupId>org.apache.tika</groupId>
			<artifactId>tika-parsers</artifactId>
			<version>1.20</version>
		</dependency>

解析doc和docx文件

public static String readWord(InputStream is ,boolean doc) {
        String buffer = "";
        try {
            if (doc) {
              //根據文件后綴進判斷分支,.doc和.docx使用的方法不一樣
                BodyContentHandler handler = new BodyContentHandler(1024 * 1024 * 10);//設置文檔大小,避免文件太大tika報錯,默認大小就是1024*1024*10
                Metadata metadata = new Metadata();
                ParseContext pContext = new ParseContext();
                Parser msOfficeParser = new OfficeParser();
                msOfficeParser.parse(is , handler , metadata , pContext);
                buffer = handler.toString();
                is.close();
            } else {
                Tika tika = new Tika();
                buffer = tika.parseToString(is);
                is.close();
            }
        } catch (Exception e) {
            throw new RRException("讀取文件失敗,請用Microsoft Word另存為之后再上傳");
        }

        return buffer;
    }

注意:

若原工程內使用過POI工具,需要把原POI依賴先清空,避免依賴沖突。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM