Рекомендую попробовать Apache Tika . Apache Tika - это в основном инструментарий, который извлекает данные из многих типов документов, включая PDF-файлы.
Преимущества Tika (помимо бесплатности) заключаются в том, что он является подпроектом Apache Lucene, который является очень надежной поисковой системой с открытым исходным кодом. Tika включает в себя встроенный анализатор PDF, который использует обработчик содержимого SAX для передачи данных PDF в ваше приложение. Он также может извлекать данные из зашифрованных PDF-файлов и позволяет создавать или создавать подклассы существующего анализатора для настройки поведения.
Код прост. Чтобы извлечь данные из PDF, все, что вам нужно сделать, это создать класс Parser, который реализует интерфейс Parser и определить метод parse ():
public void parse(
InputStream stream, ContentHandler handler,
Metadata metadata, ParseContext context)
throws IOException, SAXException, TikaException {
metadata.set(Metadata.CONTENT_TYPE, HELLO_MIME_TYPE);
metadata.set("Hello", "World");
XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
xhtml.startDocument();
xhtml.endDocument();
}
Затем, чтобы запустить парсер, вы можете сделать что-то вроде этого:
InputStream input = new FileInputStream(new File(resourceLocation));
ContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
PDFParser parser = new PDFParser();
parser.parse(input, textHandler, metadata);
input.close();
out.println("Title: " + metadata.get("title"));
out.println("Author: " + metadata.get("Author"));
out.println("content: " + textHandler.toString());