当前位置: 首页 > news >正文

Apache tika 实现各种文档内容解析

Apache tika 实现各种文档内容解析

1、依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.js</groupId><artifactId>TikaResouce</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version></parent><dependencyManagement><dependencies><dependency><groupId>org.apache.tika</groupId><artifactId>tika-bom</artifactId><version>2.8.0</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version></dependency><dependency><groupId>org.apache.tika</groupId><artifactId>tika-core</artifactId></dependency><dependency><groupId>org.apache.tika</groupId><artifactId>tika-parsers-standard-package</artifactId></dependency></dependencies></project>

2、配置文件

新建一个 tika-config.xml 文件
<?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、配置类

package cn.js.config;import java.io.IOException;
import java.io.InputStream;
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;/*** tika配置类*/
@Configuration
public class MyTikaConfig {@Autowiredprivate ResourceLoader resourceLoader;@Beanpublic 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);}
}

controller

package cn.js.controller;import org.apache.tika.Tika;
import org.apache.tika.exception.TikaException;
import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;@RestController
@RequestMapping("/tika")
public class TikaController {@Resourceprivate Tika tika;@PostMapping("/pdf")public void TikaDemon(@RequestParam("file") MultipartFile file) throws IOException, TikaException {InputStream inputStream = file.getInputStream();String s = tika.parseToString(inputStream);System.out.println(s);}}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 科普文本分类背后的数学原理——最新版《数学之美》第14、15章读书笔记
  • 南方CASS:测绘工作者的得力助手
  • 发表EI会议论文-对考研生和研究生都有好处!
  • Mysql数据库两表连接进行各种操作
  • Python 如何实现数据驱动的接口自动化测试
  • 面壁智能发布端侧 AI 应用开发平台;快手推出肖像动画技术 LivePortrait丨 RTE 开发者日报
  • 【C++中resize和reserve的区别】
  • qt 线程举例
  • 基层医院、专科医院云HIS系统,支持电子病历四级,全套源码交付
  • MeEdu网校系统搜索功能问题处理
  • 【网络安全】Host碰撞漏洞原理+工具+脚本
  • codeforces round 956 div2
  • 使用 mongo2neo4j 和 SemSpect 通过各种方式进行图探索
  • 超市收银系统源码
  • 通过 Parallels Desktop 虚拟机安装运行 macOS 15 Sequoia
  • [数据结构]链表的实现在PHP中
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【React系列】如何构建React应用程序
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Angular 4.x 动态创建组件
  • C学习-枚举(九)
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • echarts的各种常用效果展示
  • git 常用命令
  • IndexedDB
  • iOS 系统授权开发
  • JavaScript-Array类型
  • JavaScript设计模式与开发实践系列之策略模式
  • KMP算法及优化
  • Lsb图片隐写
  • PHP 的 SAPI 是个什么东西
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 从零开始在ubuntu上搭建node开发环境
  • 对象引论
  • 飞驰在Mesos的涡轮引擎上
  • 力扣(LeetCode)56
  • 小程序开发中的那些坑
  • 译米田引理
  • 阿里云API、SDK和CLI应用实践方案
  • 组复制官方翻译九、Group Replication Technical Details
  • ​补​充​经​纬​恒​润​一​面​
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • ### RabbitMQ五种工作模式:
  • #FPGA(基础知识)
  • #QT(QCharts绘制曲线)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $.each()与$(selector).each()
  • (C#)获取字符编码的类
  • (day 12)JavaScript学习笔记(数组3)
  • (Java数据结构)ArrayList
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (一)为什么要选择C++
  • (转)菜鸟学数据库(三)——存储过程
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .Net环境下的缓存技术介绍