Java将ppt转换为文本

复制代码
使用 Apache Tika 库,它是一个通用的文档内容提取工具,支持多种文档类型,包括 PowerPoint 文档。

    在使用 Apache Tika 之前,首先确保你的项目中添加了 Tika 的依赖。在 Maven 项目中,可以添加以下依赖:
复制代码
<!--PowerPoint 文档-->
<dependency>
	<groupId>org.apache.tika</groupId>
	<artifactId>tika-core</artifactId>
	<version>1.27</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
	<groupId>org.apache.tika</groupId>
	<artifactId>tika-parsers</artifactId>
	<version>1.27</version> <!-- 使用最新版本 -->
</dependency>
复制代码
然后,你可以使用以下代码来提取 PowerPoint 文档的文本:
复制代码
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.microsoft.ooxml.OOXMLParser;
import org.apache.tika.sax.BodyContentHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;

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

public class PowerPointUtil {

    private static final Logger log = LoggerFactory.getLogger(PowerPointUtil.class);

    /**
     * 将 PowerPoint 文档转换为文本
     *
     * @param file PowerPoint 文件
     * @return 提取的文本
     */
    public static String pptToTextConverter(MultipartFile file) {
        try (InputStream is = file.getInputStream()) {
            return extractTextUsingTika(is);
        } catch (IOException e) {
            throw new RuntimeException("无法读取PowerPoint文档", e);
        }
    }

    private static String extractTextUsingTika(InputStream is) {
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
        ParseContext context = new ParseContext();

        try {
            new OOXMLParser().parse(is, handler, metadata, context);
            String text = handler.toString();
            log.info("PowerPoint文档内容: {}", text);
            return text;
        } catch (IOException | TikaException | SAXException e) {
            throw new RuntimeException("提取PowerPoint文档内容时发生错误", e);
        }
    }
}
复制代码
这里使用了 Apache Tika 的 OOXMLParser 类来解析 PowerPoint 文档,它支持 OOXML 格式(.pptx)。这种方式可能会更容易集成到你的项目中,且无需直接使用 Apache POI 的底层 API。
相关推荐
leikooo5 小时前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
Ivanqhz6 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
沙漠之主6 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
FPGA小徐7 小时前
PA1 基础设施(2)深度解析:NEMU 中 ITRACE、MTRACE、FTRACE、IRINGBUF、ETRACE、DIFFTEST 全解析
java·服务器·网络
YOLO数据集集合7 小时前
EvoAgent:面向PR研发治理的自进化Multi-Agent Harness系统
java·开发语言·目标检测·agent·自进化
知行EDI7 小时前
知行之桥 MaBang 端口使用指南——Create Order 订单创建篇
java·服务器·数据库
笑鸿的学习笔记7 小时前
C++笔记之大块顺序写
java·c++·笔记
打工仔折腾 AI8 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
殷色玫瑰9 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
青山木10 小时前
Hot 100 --- 编辑距离
java·数据结构·算法·leetcode·动态规划