Проблемы с анализом таблицы внутри файла 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();