Apache-Tika

Apache Tika 文档解析 https://tika.apache.org/


Tika 读取 wps 格式文档

@Test
@SneakyThrows
public void readWps() {
    Tika tika = new Tika();
    InputStream inputStream = new FileInputStream("/Users/xx/通知.wps");
    String fileContent = tika.parseToString(inputStream);
    log.info(fileContent);
}

使用 BodyContentHandler 读取 docx 元数据及文本

Tika.parseToString() 内部会使用默认的 ContentHandler(通常是 BodyContentHandler )来处理解析过程中的事件。 有些情况下可能需要更多的控制权,例如你可能想获取更详细的元数据,或者你想在解析过程中执行特定的操作(例如记录特定的事件,或者在某些条件下中断解析过程),在这种情况下,你可以创建自己的ContentHandler 实现,或者使用 Tika 提供的其他 ContentHandler 实现。

例如:

@Test
@SneakyThrows
public void testParser() {
    AutoDetectParser parser = new AutoDetectParser();
    BodyContentHandler handler = new BodyContentHandler();
    Metadata metadata = new Metadata();
    InputStream inputStream = new FileInputStream("/Users/xx/xx.docx");
    parser.parse(inputStream, handler, metadata);
    log.info("metadata: {}", metadata);
    log.info("text: {}", handler.toString());
}