当前位置:

java读取word,excel,ppt,pdf文件内容

机器助手 |  2025-07-13
 24人浏览

Tika 是一个内容抽取的工具集合 (a toolkit for text extracting)。它集成了 POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面。其次,Tika 也提供了便利的扩展 API,用来丰富其对第三方文件格式的支持。

在当前的 0.2-SNAPSHOT 版本中, Tika 提供了对如下文件格式的支持:

  • PDF - 通过 Pdfbox

  • MS-* - 通过 POI

  • HTML - 使用 nekohtml 将不规范的 html 整理成为 xhtml

  • OpenOffice 格式 - Tika 提供

  • Archive - zip, tar, gzip, bzip 等

  • RTF - Tika 提供

  • Java class - Class 解析由 ASM 完成

  • Image - 只支持图像的元数据抽取

  • XML

Tika 的 API 十分便捷,核心是 Parser interface,其中定义了一个 parse 方法:
public void parse(InputStream stream, ContentHandler handler, Metadata metadata)
用 stream 参数传递需要解析的文件流, 文本内容会被传入 handler,而元数据会更新至 metadata。

可以使用 Tika 的 ParserUtils 工具来根据文件的 mime-type 来得到一个适当的 Parser 来进行解析工作。或者 Tika 还提供了一个 AutoDetectParser 根据不同的二进制文件的特殊格式 (比如说 Magic Code),来寻找适合的 Parser。

 

官方网站:https://tika.apache.org/

在maven仓库下载最新版依赖 https://mvnrepository.com/artifact/org.apache.tika/tika-parsers

懒得去的同学,提供一个笔者正在使用的依赖

    <!-- https://mvnrepository.com/artifact/org.apache.tika/tika-parsers -->         
    <dependency>
      <groupId>org.apache.tika</groupId>
      <artifactId>tika-parsers</artifactId>
      <version>1.18</version>
    </dependency>
提取url中的文字信息
public class TikaDemo {
    public static void main(String[] args) throws IOException, TikaException {
        Tika tika = new Tika();
        String s = tika.parseToString(new URL("https://www.baidu.com"));
        System.out.println(s);
 
    }
}
 

提取word中的文字


public class TikaDemo {
    public static void main(String[] args) throws IOException, TikaException {
        Tika tika = new Tika();
        File file = new File("文档.docx");
        String s = tika.parseToString(file);
        System.out.println(s);
    }
}
 

提取excel中的文字


public class TikaDemo {
    public static void main(String[] args) throws IOException, TikaException {
        Tika tika = new Tika();
        File file = new File("工作簿.xlsx");
        String s = tika.parseToString(file);
        System.out.println(s);
    }
}
输出内容: 

提取pdf文件中的文字


public class TikaDemo {
    public static void main(String[] args) throws IOException, TikaException {
        Tika tika = new Tika();
        File file = new File("pdf文件.pdf");
        String s = tika.parseToString(file);
        System.out.println(s);
    }
}
输出结果:

 
 

 

文章评论