likes
comments
collection
share

「Java 开发工具」Java 文档解析工具:Apache Tika 开源的文档内容解析工具

作者站长头像
站长
· 阅读数 32

🙏废话不多说系列,直接开整🙏

一、介绍

    简单介绍下:Apache Tika™ 工具包从一千多种不同的文件类型(如 PPT、XLS 和 PDF)中检测和提取元数据和文本。所有这些文件类型都可以通过一个界面进行解析,这使得 Tika 可用于搜索引擎索引、内容分析、翻译等。

「Java 开发工具」Java 文档解析工具:Apache Tika 开源的文档内容解析工具

二、使用方式

  1. Java jar 包直接运行的方式;
  2. 安装包直接安装到本地windows 系统的方式;
  3. 环境搭建:
    1. JDK 1.8+
    2. SpringBoot 3.x+

(1)在 Java 程序中使用

【1】引入 Maven 依赖
<!-- tika 文章解析 -->
<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>2.9.0</version>
</dependency>
<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-parsers-standard-package</artifactId>
    <version>2.9.0</version>
</dependency>
【2】定义 tika 运行属性

此配置文件存放于 SpringBoot 项目的 resources 目录下即可,如果位置发生变化需要在获取资源的时候改变位置保持同步一致即可。

<?xml version="1.0" encoding="UTF-8"?>
<properties>
    <encodingDetectors>
        <encodingDetector class="org.apache.tika.parser.html.HtmlEncodingDetector">
            <params>
                <param name="markLimit" type="int">64000</param>
            </params>
        </encodingDetector>
        <encodingDetector class="org.apache.tika.parser.txt.UniversalEncodingDetector">
            <params>
                <param name="markLimit" type="int">64001</param>
            </params>
        </encodingDetector>
        <encodingDetector class="org.apache.tika.parser.txt.Icu4jEncodingDetector">
            <params>
                <param name="markLimit" type="int">64002</param>
            </params>
        </encodingDetector>
    </encodingDetectors>
</properties>
【3】编写配置文件

此配置文件:用于使得 tika 配置属性生效个性化的配置,如果需要更多的配置定制可以前往官网查阅。

import org.apache.tika.Tika;
import org.apache.tika.config.TikaConfig;
import org.apache.tika.detect.Detector;
import org.apache.tika.exception.TikaException;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.Parser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.xml.sax.SAXException;

import java.io.IOException;
import java.io.InputStream;

/**
 * tika 配置类
 *
 * @author drew
 * @date 2024/7/6 上午11:59
 */
@Configuration
public class MyTikaConfig {
    @Autowired
    private ResourceLoader resourceLoader;

    @Bean
    public Tika tika() throws TikaException, IOException, SAXException {

        Resource resource = resourceLoader.getResource("classpath:tika-config.xml");
        InputStream inputStream = resource.getInputStream();

        TikaConfig config = new TikaConfig(inputStream);
        Detector detector = config.getDetector();
        Parser autoDetectParser = new AutoDetectParser(config);

        return new Tika(detector, autoDetectParser);
    }
}
【4】运行测试

编写一个测试类,指定本地的文件地址(或远程的文件地址)即可,但是得注意两者的区分。

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private Tika tika;

    @Test
    void contextLoads() throws TikaException, IOException {
        Path path = Paths.get("C:", "\\Users\\drew\\Downloads\\测试岗位技能要求.pdf");
        File file = path.toFile();
        String content = tika.parseToString(file);
        System.out.println("解析后的文章内容如下:\n" + content);
    }

}
【5】测试结果

「Java 开发工具」Java 文档解析工具:Apache Tika 开源的文档内容解析工具

(2)直接使用

下载可运行的 Jar 包,直接启动得到一个 图形化界面,拖入一个PDF测试文件来试试,即可,演示步骤如下:

  1. 下载地址:Apache Tika – 下载tika.apache.org/download.ht…
  2. 简单运行JAR包指令:【jar -jar tika-app-3.0.0-BETA.jar】即可。
【1】运行 Jar 包
# 下载地址:https://www.apache.org/dyn/closer.lua/tika/3.0.0-BETA/tika-app-3.0.0-BETA.jar
$ java -jar tika-app-3.0.0.BETA.jar
【2】使用示例展示

「Java 开发工具」Java 文档解析工具:Apache Tika 开源的文档内容解析工具

选中 file - Open,

「Java 开发工具」Java 文档解析工具:Apache Tika 开源的文档内容解析工具

解析之后的结果,如下图所示:

「Java 开发工具」Java 文档解析工具:Apache Tika 开源的文档内容解析工具

【🌟】如果需要查看文件的读取内容,需要选择【View - FormattedText】即可查看,如下图所示:

「Java 开发工具」Java 文档解析工具:Apache Tika 开源的文档内容解析工具

至此,安装使用 Tika 的两种方式示例完毕。更多的使用技巧和方法,见文章底部【附录】地址查看哦 ~~~///(^v^)\~~~ 。

附录


🙏至此,非常感谢阅读🙏

转载自:https://juejin.cn/post/7388635438742044681
评论
请登录