Подход к извлечению текста в PDF с использованием OCR

Кто-нибудь пытался извлечь текст из PDF с помощью библиотеки OCR и Java? Что вы считаете самой надежной библиотекой для извлечения текста. Большинство подходов, которые я видел (tesseract, GOCR), - это библиотеки C, которые требуют написания некоторого кода JNI.

Я знаком с pdfbox, который сейчас является проектом инкубатора Apache версии 0.8.x, но его извлечение текста не всегда точное. Я ищу альтернативный подход, который был бы несколько более надежным.

Я еще не пробовал Asprise JavaPDF в процессе этого, но хотел узнать больше о подходе OCR (если это возможно).

Любая помощь будет оценена.

4 ответа

Если у вас есть текстовый PDF, я настоятельно рекомендую PDFTextStream. Это не бесплатно, но лицензирование разумно, и это намного лучше, чем PDFBox. PDFBox душит многие PDF-файлы, созданные новыми инструментами, и не слишком согласован с PDF-файлами, которые он может обрабатывать. PDFTextStream обрабатывает любой PDF-файл, который я добавляю, включая PDF-файлы со встроенными изображениями PNG, чего не может сделать PDFBox.

Если вы добавите OCR к ребятам из PDFTextStream, они могут прослушать.

Мы используем ABBYY FineReader Engine 11. У них есть Java-оболочка.

Плюсы:

  • Он прекрасно работает со всеми языками (английский, русский, узбекский и т. Д.) И выполняет настоящее распознавание текста (даже если у вас есть PDF без распознавания текста, они сначала выполняют визуализацию и распознавание текста).

Минусы:

  • Это стоит. Вы должны купить лицензию разработчика и конечного пользователя.

  • И это крайне медленно.

Вы можете использовать Java-оболочки Tesseract - tesjeract или Tess4J - для выполнения распознавания текста. Однако для PDF вам необходимо сначала преобразовать его в изображение (PNG или TIFF), прежде чем передавать его в механизм распознавания.

VietOCR вызывает Tesseract исполняемый файл для извлечения текста. Он использует GhostScript для преобразования PDF в изображения.

Если вы хотите извлечь OCR из текстового PDF-файла, вам, возможно, придется сначала преобразовать его в изображение.

Другие вопросы по тегам