Когда я использую tika для анализа Microsoft Word (doc/docx), я обнаружил, что встроенное изображение поместите в конец документа.
Я прочитал исходный код в AbstractOOXMLExtractor и обнаружил, что он сначала анализирует xhtml, а затем внедряет файлы, поэтому он всегда будет помещен в конце.
Код: Выделить всё
public void getXHTML(ContentHandler handler, Metadata metadata, ParseContext context)
throws SAXException, XmlException, IOException, TikaException {
XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
xhtml.startDocument();
// first parse xhtml
buildXHTML(xhtml);
// then the embedded files
// Now do any embedded parts
handleEmbeddedParts(xhtml, metadata, getEmbeddedPartMetadataMap());
// thumbnail
handleThumbnail(xhtml, metadata);
xhtml.endDocument();
}
Я настроил ParsingEmbeddedDocumentExtractor、
Код: Выделить всё
ParsingEmbeddedDocumentExtractorFactory、ParsingEmbeddedDocumentExtractor
Затем я проанализировал документ как XML, замените тег img с проанализированным встроенным файлом, полученным из ParseContext.
Таким образом, я могу проанализировать изображение в msword в правильном положении.
Интересно есть ли лучший способ выполнить эту работу?
И почему tika анализирует встроенные файлы в конце документа?
Любая проблема с их анализом, где они появились?
Подробнее здесь: https://stackoverflow.com/questions/787 ... t-position