介绍
Apache Tika 是一个开源的内容分析工具包,用于从各种文档格式中提取文本和元数据。它支持多种文档类型,包括但不限于文本文件、HTML、PDF、Microsoft Office 文档、图像文件等。Tika 的主要功能包括内容检测、文本提取和元数据提取。
官网
https://tika.apache.org/
Apache Tika 的功能
- 内容检测:识别文件的 MIME 类型。
- 文本提取:从文档中提取纯文本内容。
- 元数据提取:从文档中提取元数据(如标题、作者、创建日期等)。
与Springboot集成案例
添加pom依赖
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers-standard-package</artifactId>
<version>2.9.1</version>
</dependency>
创建工具类
public class MyFileUtils {
public static String doParse(String filePath) throws TikaException, SAXException, IOException {
try(InputStream inputStream = new FileInputStream(filePath)){
BodyContentHandler handler = new BodyContentHandler(-1);
Metadata metadata = new Metadata();
ParseContext parseContext = new ParseContext();
AutoDetectParser detectParser = new AutoDetectParser();
detectParser.parse(inputStream, handler, metadata, parseContext);
return handler.toString();
}
}
}
测试
public class MyFileUtilsTest {
public static void main(String[] args) {
String filePath = "D:/tmp/测试附件.xls";
String content = null;
try {
content = MyFileUtils.doParse(filePath);
} catch (TikaException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(content);
}
}
- 输出