На самом деле Tika обрабатывает страницы (по крайней мере, в формате pdf), отправляя элементы <div><p>
до начала страницы и </p></div>
после окончания страницы. Вы можете легко настроить количество страниц в вашем обработчике, используя это (просто считая страницы, используя только <p>
):
public abstract class MyContentHandler implements ContentHandler {
private String pageTag = "p";
protected int pageNumber = 0;
...
@Override
public void startElement (String uri, String localName, String qName, Attributes atts) throws SAXException {
if (pageTag.equals(qName)) {
startPage();
}
}
@Override
public void endElement (String uri, String localName, String qName) throws SAXException {
if (pageTag.equals(qName)) {
endPage();
}
}
protected void startPage() throws SAXException {
pageNumber++;
}
protected void endPage() throws SAXException {
return;
}
...
}
При выполнении этого с pdf вы можете столкнуться с проблемой, когда парсер не отправляет текстовые строки в правильном порядке - см. Извлечение текста из файлов PDF с Apache Tika 0.9 (и PDFBox под капотом) on как справиться с этим.