当前位置:首页 » 《我的小黑屋》 » 正文

Apache Tika 实现Pdf、docx、xml等文件内容提取

24 人参与  2024年11月05日 12:02  分类 : 《我的小黑屋》  评论

点击全文阅读


什么是Apache Tika?

Apache Tika是一个用于从各种文件格式中检索文档类型和内容的库。在内部,Tika使用现有的各种文档解析器和文档类型检测技术来检测和提取数据。使用Tika,可以开发通用类型检测器和内容提取器,以在一定程度上提取结构化文本以及来自不同类型文档的元数据,例如电子表格,文本文档,图像,PDF甚至多媒体输入格式。Tika提供了一个通用的API来解析不同的文件格式。 它为每种文档类型使用现有的专用解析器库。

支持得格式

文件格式

包库

蒂卡班

XML

org.apache.tika.parser.xml

XMLParser

HTML

org.apache.tika.parser.html它使用了Tagsoup Library

HtmlParser

MS-Office复合文档Ole2到2007年ooxml 2007年起

org.apache.tika.parser.microsoft

org.apache.tika.parser.microsoft.ooxml,它使用Apache Poi库

OfficeParser(OLE2)

OOXMLParser(ooxml)

OpenDocument格式openoffice

org.apache.tika.parser.odf

OpenOfficeParser

便携式文件格式(PDF)

org.apache.tika.parser.pdf和这个包使用Apache PdfBox库

PDFParser

电子出版物格式(数字图书)

org.apache.tika.parser.epub

EpubParser

富文本格式

org.apache.tika.parser.rtf

RTFParser

压缩和包装格式

org.apache.tika.parser.pkg和这个包使用Common压缩库

PackageParser和CompressorParser及其子类

文字格式

org.apache.tika.parser.txt

TXTParser

Feed和联合格式

org.apache.tika.parser.feed

FeedParser

音频格式

org.apache.tika.parser.audio和org.apache.tika.parser.mp3

AudioParser MidiParser Mp3-适用于mp3parser

Imageparsers

org.apache.tika.parser.jpeg

JpegParser-用于jpeg图像

Videoformats

org.apache.tika.parser.mp4和org.apache.tika.parser.video这个解析器在内部使用简单算法来解析flash视频格式

Mp4parser FlvParser

java类文件和jar文件

org.apache.tika.parser.asm

ClassParser CompressorParser

Mobxformat(电子邮件)

org.apache.tika.parser.mbox

MobXParser

Cad格式

org.apache.tika.parser.dwg

DWGParser

FontFormats

org.apache.tika.parser.font

TrueTypeParser

可执行程序和库

org.apache.tika.parser.executable

ExecutableParser

解析器

public interface Parser extends Serializable {    Set<MediaType> getSupportedTypes(ParseContext var1);    void parse(InputStream var1, ContentHandler var2, Metadata var3, ParseContext var4) throws IOException, SAXException, TikaException;}

接口说明

参数

说明

InputStream

待解析的文档,以字节流形式传入,可以避免tika占用太多内存

ContentHandler

内容处理器,用来收集结果,Tika会将解析结果包装成XHTML SAX event进行分发,通过ContentHandler处理这些event就可以得到文本内容和其他有用的信息

Metadata

元数据,既是输入也是输出,可以将文件名或者可能的文件类型传入,tika解析时可以根据这些信息判断文件类型,再调用相应的解析器进行处理;另外,tika也会将一些额外的信息保存到Metadata中,如文件修改日期,作者,编辑工具等

ParseContext

解析上下文,用来控制解析过程,比如是否提取Office文档里面的宏等

tika的解析类的相关接口和类的UML模型

SpringBoot集成简单使用

添加依赖

        <dependency>            <groupId>org.apache.tika</groupId>            <artifactId>tika-core</artifactId>            <version>2.8.0</version>        </dependency>        <dependency>            <groupId>org.apache.tika</groupId>            <artifactId>tika-parsers-standard-package</artifactId>            <version>2.8.0</version>        </dependency>        <dependency>            <groupId>commons-io</groupId>            <artifactId>commons-io</artifactId>            <version>2.11.0</version> <!-- 请根据需要选择合适的版本 -->        </dependency>

简单使用

public class TikiService {    public static void main(String[] args) throws Exception {        //创建解析器--在不确定文档类型时候可以选择使用AutoDetectParser可以自动检测一个最合适的解析器        //如果确定可以使用确定的一个        //PDFParser pdfParser = new PDFParser();        //XMLParser xmlParser = new XMLParser();        //OfficeParser officeParser = new OfficeParser();        //........................        Parser parser = new AutoDetectParser();        //用于捕获文档提取的文本内容。-1 参数表示使用无限缓冲区,解析到的内容通过此hander获取        BodyContentHandler bodyContentHandler = new BodyContentHandler(-1);        //元数据对象,它在解析器中传递元数据属性---可以获取文档属性        Metadata metadata = new Metadata();        //带有上下文相关信息的ParseContext实例,用于自定义解析过程。        ParseContext parseContext = new ParseContext();                File file = new File("C:\\Users\\cc\\study\\12.docx");        FileInputStream fileInputStream = new FileInputStream(file);        parser.parse(fileInputStream,bodyContentHandler,metadata,parseContext);        //获取文本        System.out.println(bodyContentHandler.toString());        //元数据信息        String[] names = metadata.names();        for (String name : names) {            System.out.println(name);        }    }}

支持解析模块


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/182707.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 进错房,嫁给八零最牛特种兵已完结(林晚夏江肆年)抖音热文_《进错房,嫁给八零最牛特种兵已完结》最新章节免费在线阅读 -
  • 重生后选魔族,天族哭着求我当王全章节(月沁雪任意)全文免费阅读无弹窗大结局_(重生后选魔族,天族哭着求我当王全章节)重生后选魔族,天族哭着求我当王全章节免费阅读全文最新章节列表_笔趣阁(重生后选魔族,天族哭着求我当王全章节) -
  • 捡回摄政王后,她在皇室作威作福完结版小说(景飞鸢赵灵杰)全文免费阅读无弹窗大结局_(捡回摄政王后,她在皇室作威作福完结版免费阅读全文大结局)最新章节列表_笔趣阁(捡回摄政王后,她在皇室作威作福完结版) -
  • 千金难泣(立轩苏子骞翠竹吴进)全本免费在线阅读_千金难泣最新章节在线阅读(立轩苏子骞翠竹吴进)
  • 《沈云阶傅宴辞》(沈云阶傅宴辞》已完结完整版全集大结局小说)全文阅读笔趣阁
  • 《沈凌峰沈国华》已完结小说全文阅读笔趣阁《沈凌峰沈国华》
  • 《傅嫤韩恬魏郯程茂》已完结(傅嫤韩恬魏郯程茂)热门小说全目录完整版)全文阅读笔趣阁
  • 八零俏军医错嫁糙汉军官:番外+全文+后续(贺昭朗孟翩然)完本小说免费_全本免费小说八零俏军医错嫁糙汉军官:番外+全文+后续最新小说全文阅读(贺昭朗孟翩然)
  • 失去千千万万遍在线阅读(阮相宜陆凛言)全文免费阅读无弹窗大结局_(失去千千万万遍在线阅读)失去千千万万遍在线阅读免费阅读全文最新章节列表_笔趣阁(失去千千万万遍在线阅读) -
  • 脱离世界后,妻子疯了火爆小说小说(沈夕颜林程言)全文免费阅读无弹窗大结局_(脱离世界后,妻子疯了火爆小说免费阅读全文大结局)最新章节列表_笔趣阁(脱离世界后,妻子疯了火爆小说) -
  • 跨年发生踩踏,男友为救白月光丢下我(温林初宝宝)免费阅读 -
  • 都重生了,还不离婚等啥呢宋招弟霍文铮小说在线章节免费阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1