Проблемы с анализом таблицы внутри файла RTF с использованием Apache Tika

Я пытаюсь разобрать файл RTF с помощью Apache Tika. Внутри файла есть таблица с несколькими столбцами.

Проблема в том, что анализатор записывает результат без какой-либо информации, в каком столбце было значение.

Что я делаю сейчас:

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

Это работает, но мне нужно знать, как метаинформацию.

Есть ли уже обработчик, который выводит что-то вроде HTML со структурой прочитанного RTF-файла?

1 ответ

Я бы посоветовал вместо того, чтобы спрашивать Тику о простой текстовой версии, а потом интересоваться, куда ушла вся ваша приятная HTML-информация, вы просто попросите у Тики документ в формате 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();
Другие вопросы по тегам