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

springboot集成tika解析word,pdf,xls文件文本内容

在这里插入图片描述

介绍

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);}
}
  • 输出
    在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 科普文:分布式系统的架构设计模式
  • 探索Conda世界:使用conda list命令的全面指南
  • 【LabVIEW学习篇 - 2】:LabVIEW的编程特点
  • Java笔试|面试 —— 对多态性的理解
  • Perl 语言开发(七):哈希和关联数组
  • 【LeetCode】生命游戏
  • 江苏高防服务器都有哪些优势?
  • 关于ORACLE单例数据库中的logfile的切换、删除以及添加
  • 【操作系统】进程管理——信号量机制(个人笔记)
  • Kubernetes基于helm部署jenkins
  • Python入门 2024/7/8
  • 【RIP实验-熟悉基础配置】
  • Sorted Set 类型命令(命令语法、操作演示、命令返回值、时间复杂度、注意事项)
  • tomcat 安装和优化
  • 6月30日功能测试Day10
  • C++类中的特殊成员函数
  • Github访问慢解决办法
  • Java基本数据类型之Number
  • Redis字符串类型内部编码剖析
  • SpringCloud集成分布式事务LCN (一)
  • Vue.js源码(2):初探List Rendering
  • 分布式熔断降级平台aegis
  • 技术:超级实用的电脑小技巧
  • 如何学习JavaEE,项目又该如何做?
  • 少走弯路,给Java 1~5 年程序员的建议
  • 使用common-codec进行md5加密
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 一个完整Java Web项目背后的密码
  • 原生Ajax
  • 带你开发类似Pokemon Go的AR游戏
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​Spring Boot 分片上传文件
  • ​如何防止网络攻击?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ### RabbitMQ五种工作模式:
  • #14vue3生成表单并跳转到外部地址的方式
  • $$$$GB2312-80区位编码表$$$$
  • (12)Linux 常见的三种进程状态
  • (2)(2.10) LTM telemetry
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (ZT)出版业改革:该死的死,该生的生
  • (二)测试工具
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (九)c52学习之旅-定时器
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)基于IDEA的JAVA基础1
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)关于pipe()的详细解析
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ***原理与防范
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .aanva