使用Apache Tika解析RTF文件中的表时出现问题

问题描述 投票:1回答:1

我正在尝试使用Apache Tika解析RTF文件。在文件内部有一个包含多个列的表。

问题是解析器在没有任何信息的情况下写出结果,而该值是哪一列。

我现在正在做的是:

AutoDetectParser adp = new AutoDetectParser(tc);
Metadata metadata = new Metadata();
String mimeType = new Tika().detect(file);
metadata.set(Metadata.CONTENT_TYPE, mimeType);
BodyContentHandler handler = new BodyContentHandler();

InputStream fis = new FileInputStream(file);

adp.parse(fis, handler, metadata, new ParseContext());

fis.close();
System.out.println(handler.toString());

它有效,但我需要知道元信息。

是否已有一个Handler输出类似HTML的读取RTF文件的结构?

java parsing rtf apache-tika
1个回答
1
投票

我建议不要问Tika的纯文本版本,而是想知道你所有漂亮的HTML信息在哪里,你只需要问Tika文件为XHTML。然后,您就可以对其进行处理,以便在RTF文件中找到所需的信息

如果您查看Tika示例或Tika单元测试,您将看到相同的模式,以便轻松获得XHTML输出

    Metadata metadata = new Metadata();

    StringWriter sw = new StringWriter();
    SAXTransformerFactory factory = (SAXTransformerFactory)
             SAXTransformerFactory.newInstance();
    TransformerHandler handler = factory.newTransformerHandler();
    handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "xml");
    handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "no");
    handler.setResult(new StreamResult(sw));

    parser.parse(input, handler, metadata, new ParseContext());

    String xhtml = sw.toString();
© www.soinside.com 2019 - 2024. All rights reserved.