Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >apache-tika从ppt-pdf-xls读取文本

apache-tika从ppt-pdf-xls读取文本

作者头像
阿超
发布于 2024-03-04 01:27:19
发布于 2024-03-04 01:27:19
29200
代码可运行
举报
文章被收录于专栏:快乐阿超快乐阿超
运行总次数:0
代码可运行

你若要喜爱自己的价值,你就得给世界创造价值。——歌德

代码仓库:

GitHub - apache/tika: The Apache Tika toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF).

官网:

https://tika.apache.org/

快速开始:

Apache Tika – Getting Started with Apache Tika

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.tika.example;

import static java.nio.charset.StandardCharsets.UTF_8;

import java.io.File;
import java.io.InputStream;

import org.apache.commons.io.FileUtils;
import org.xml.sax.ContentHandler;

import org.apache.tika.config.TikaConfig;
import org.apache.tika.detect.Detector;
import org.apache.tika.io.TikaInputStream;
import org.apache.tika.langdetect.optimaize.OptimaizeLangDetector;
import org.apache.tika.language.detect.LanguageDetector;
import org.apache.tika.language.detect.LanguageResult;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.mime.MediaType;
import org.apache.tika.mime.MimeTypes;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;

/**
 * Demonstrates how to call the different components within Tika: its
 * {@link Detector} framework (aka MIME identification and repository), its
 * {@link Parser} interface, its {@link org.apache.tika.language.LanguageIdentifier} and other goodies.
 * <p>
 * It also shows the "easy way" via {@link AutoDetectParser}
 */
public class MyFirstTika {
    public static void main(String[] args) throws Exception {
        String filename = args[0];
        TikaConfig tikaConfig = TikaConfig.getDefaultConfig();

        Metadata metadata = new Metadata();
        String text = parseUsingComponents(filename, tikaConfig, metadata);
        System.out.println("Parsed Metadata: ");
        System.out.println(metadata);
        System.out.println("Parsed Text: ");
        System.out.println(text);

        System.out.println("-------------------------");

        metadata = new Metadata();
        text = parseUsingAutoDetect(filename, tikaConfig, metadata);
        System.out.println("Parsed Metadata: ");
        System.out.println(metadata);
        System.out.println("Parsed Text: ");
        System.out.println(text);
    }

    public static String parseUsingAutoDetect(String filename, TikaConfig tikaConfig,
                                              Metadata metadata) throws Exception {
        System.out.println("Handling using AutoDetectParser: [" + filename + "]");

        AutoDetectParser parser = new AutoDetectParser(tikaConfig);
        ContentHandler handler = new BodyContentHandler();
        TikaInputStream stream = TikaInputStream.get(new File(filename), metadata);
        parser.parse(stream, handler, metadata, new ParseContext());
        return handler.toString();
    }

    public static String parseUsingComponents(String filename, TikaConfig tikaConfig,
                                              Metadata metadata) throws Exception {
        MimeTypes mimeRegistry = tikaConfig.getMimeRepository();

        System.out.println("Examining: [" + filename + "]");

        metadata.set(TikaCoreProperties.RESOURCE_NAME_KEY, filename);
        System.out.println(
                "The MIME type (based on filename) is: [" + mimeRegistry.detect(null, metadata) +
                        "]");

        InputStream stream = TikaInputStream.get(new File(filename));
        System.out.println(
                "The MIME type (based on MAGIC) is: [" + mimeRegistry.detect(stream, metadata) +
                        "]");

        stream = TikaInputStream.get(new File(filename));
        Detector detector = tikaConfig.getDetector();
        System.out.println("The MIME type (based on the Detector interface) is: [" +
                detector.detect(stream, metadata) + "]");

        LanguageDetector langDetector = new OptimaizeLangDetector().loadModels();
        LanguageResult lang =
                langDetector.detect(FileUtils.readFileToString(new File(filename), UTF_8));

        System.out.println("The language of this content is: [" + lang.getLanguage() + "]");

        // Get a non-detecting parser that handles all the types it can
        Parser parser = tikaConfig.getParser();
        // Tell it what we think the content is
        MediaType type = detector.detect(stream, metadata);
        metadata.set(Metadata.CONTENT_TYPE, type.toString());
        // Have the file parsed to get the content and metadata
        ContentHandler handler = new BodyContentHandler();
        parser.parse(stream, handler, metadata, new ParseContext());

        return handler.toString();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java中使用tika_Tika基本使用
Tika是一个内容抽取的工具集合(a toolkit for text extracting)。它集成了POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面。其次,Tika也提供了便利的扩展API,用来丰富其对第三方文件格式的支持。
全栈程序员站长
2022/11/16
1.5K0
java中使用tika_Tika基本使用
Tika简单实例应用
程序说明: 默认可读取10万以内个字符文档,如果文档文件过大,则报错。 org.apache.tika.sax.WriteOutContentHandler$WriteLimitReachedException: Your document contained more than 100000 characters, and so your requested limit has been reached. To receive the full text of the document, increase your limit. (Text up to the limit is however available). 解决办法: 通过BodyContentHandler()有参构造器,设置更大的字符数限制。比如10 * 1024 * 1024,可读取1000万左右的字符文档。
程裕强
2019/05/27
1.5K0
16. Springboot集成Tika实现文档解析
Tika是一款Apache开源的,跨平台,支持多品种文本类型的内容检测和提取工具。Apache官方的介绍如下:Apache Tika™ 工具包可检测并提取一千多种不同文件类型(如 PPT、XLS 和 PDF)中的元数据和文本。所有这些文件类型都可以通过一个界面进行解析,这使得 Tika 可用于搜索引擎索引、内容分析、翻译等。
有一只柴犬
2024/11/25
3930
16. Springboot集成Tika实现文档解析
Apache-Tika解析JPEG文档
Dlimeng
2023/06/29
2660
langchain4j+Tika小试牛刀
dev/langchain4j/data/document/DocumentParser.java
code4it
2025/03/07
1200
langchain4j+Tika小试牛刀
Apache-Tika解析pdf文档
public DocumentContent readPath(InputStream stream,Path path) 
Dlimeng
2023/06/29
4700
tika或pdf基础信息
通过下面的代码就可以获取一个pdf文件的基础信息: try{ BodyContentHandler handler = new BodyContentHandler(); Metadata metadata = new Metadata(); FileInputStream inputstream = new FileInputStream(new File("D:/apache_software/so
johnhuster的分享
2022/03/28
2930
通过使用Apache Lucene和Tika了解信息检索 - 第1部分
在本教程中,将通过它们的核心概念(例如语法解析,MIME检测,内容分析法,索引,scoring方法,boosting方法)来解释Apache Lucene和Apache Tika框架,这些示例不仅适用于经验丰富的软件开发人员,还适用于内容分析法和编程的初学者。我们假设您具备Java™编程语言应用知识和大量可供分析的内容。
mumuumum
2018/06/01
2.3K0
通过使用Apache Lucene和Tika了解信息检索 - 第1部分
Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码、测试数据和训练集下载地址
 OCR(Optical character recognition) —— 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向。可惜国内的科研院所,基本没有几个高识别率的训练集——笔者联系过北京语言大学研究生一篇论文的作者,他们论文说有%90的正确识别率,结果只做了20个笔画简单的汉字(20/6753 = %0.3 常用简体汉字的千分之三),然后找了20个学生,各自手写了一遍。真的是为了论文而论文,而且很会选择样本(小而简单)
NaughtyCat
2020/10/09
4.1K0
Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码、测试数据和训练集下载地址
Java去掉html标签的各种姿势
业务开发中可能需要将html的标签全部去掉,本文将多种方法综合在这里,供大家参考。
裴大头
2022/01/17
1.9K0
Solr基础操作7
单关键字匹配 [root@h102 solr-5.3.0]# curl "http://localhost:8983/solr/gettingstarted/select?wt=json&indent
franket
2022/06/29
1920
【手把手教你全文检索】Apache Lucene初探
PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语。那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也不用打马赛克了,都是网络分享的开源资料,当然也不涉及任何利益关系。 讲解之前,先来分享一些资料 首先呢,学习任何一门新的亦或是旧的开源技术,百度其中一二是最简单的办法,先了解其中的大概,思想等等。这里就贡献一个讲解很到位的ppt。已经被我转成了PDF,便于搜藏。 其次,关于第一次编程初探,建议还是查
用户1154259
2018/01/18
1.2K0
【手把手教你全文检索】Apache Lucene初探
使用 Apache PDFBox 操作PDF文件
Apache PDFBox库是一个用于处理PDF文档的开源Java工具。该项目允许创建新的PDF文档,操作现有PDF文档,并从PDF文档中提取内容。Apache PDFBox还包括几个命令行实用程序。
万猫学社
2023/09/01
2.6K0
使用 Apache PDFBox 操作PDF文件
SpringBoot中实现自定义注解用于文件验证(大小、扩展名、MIME类型)
首先在Spring Boot中定义一个注解,用于标记需要校验的文件字段。这个注解包含验证所需的参数:允许的扩展名、MIME类型和最大文件大小。
公众号:码到三十五
2024/09/05
3040
聊聊Spring AI Alibaba的PdfTablesParser
本文主要研究一下Spring AI Alibaba的PdfTablesParser
code4it
2025/04/17
360
聊聊Spring AI Alibaba的PdfTablesParser
Solr基础操作9
比如只搜索 _version_ 为 1511824568810995712 的文档
franket
2022/06/29
2350
Solr基础操作6
再使用 http://192.168.100.102:7574/solr/gettingstarted_shard1_replica1/browse?q=example 就搜不到了 使用CLI检索数据
franket
2022/06/29
1630
Java去掉html标签的各种姿势
业务开发中可能需要将html的标签全部去掉,本文将多种方法综合在这里,供大家参考。
明明如月学长
2021/08/31
2.4K0
用 Python 提取 PDF 文本的简单方法
你好,我是征哥,一般情况下,Ctrl+C 是最简单的方法,当无法 Ctrl+C 时,我们借助于 Python,以下是具体步骤:
somenzz
2022/05/24
1.2K0
用 Python 提取 PDF 文本的简单方法
Java实现word文档在线预览,读取office(word,excel,ppt)文件
想要实现word或者其他office文件的在线预览,大部分都是用的两种方式,一种是使用openoffice转换之后再通过其他插件预览,还有一种方式就是通过POI读取内容然后预览。 一、使用openoffice方式实现word预览 主要思路是: 1.通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexPaper文档组件在页面上进行展示 我使用的工具版本: openof:3.4.1 swfT
二十三年蝉
2018/05/09
38.1K4
相关推荐
java中使用tika_Tika基本使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验