zoukankan      html  css  js  c++  java
  • 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依赖先清空,避免依赖冲突。

  • 相关阅读:
    封装tip控件
    Javascirpt中创建对象的几种方式
    使用Servlet上传文件
    Struts2 基本配置
    使用JQuery实现手风琴布局
    winform下自绘提示框风格窗体
    环形进度条
    Oracle中获取当前时间半小时前的时间
    JSTL+MyEclipse8.5+Tomcat配置
    使用CSS和jQuery实现对话框
  • 原文地址:https://www.cnblogs.com/zzzqi/p/13656735.html
Copyright © 2011-2022 走看看