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());

動作しますが、メタ情報のように知る必要があります。

読み込んだRTFファイルの構造で、HTMLのようなものを出力するハンドラは既にあるのでしょうか?

4

1 に答える 1

2

Tika にプレーン テキスト バージョンを要求するのではなく、Tika に XHTML 形式のドキュメントを要求することをお勧めします。その後、それを処理して、RTF ファイルで必要な情報を見つけることができます

Tika Examples または Tika Unit Tests を見ると、同じパターンで 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();
于 2012-04-16T15:50:06.420 に答える