Что состоит в том, чтобы программно проверить лучший способ, является ли файл PDF полностью просканированным? У меня действительно есть iText и PDFBox в моем распоряжении. Я могу проверить, содержит ли файл PDF текст или нет, и согласно результату, чтобы решить, является ли этот файл OCRed, но это решение не на 100% точно. Я хотел бы знать, существует ли другой способ справиться с проблемой.
Поскольку Вы понимаете, что решением должен быть базирующийся Java.
Лучше всего проверить, есть ли в нем текст, а также увидеть, содержит ли оно большое изображение размером с страницу или множество мозаичных изображений, покрывающих страницу. Если вы также проверите метаданные, они должны охватывать большинство вариантов.
IMHO вы не можете решить это наверняка. Но вы можете попробовать некоторые вещи, такие как поиск текста, попытка OCR pdf и на основе количества распознанного текста решить, вы можете искать некоторые основные ошибки сканирования, такие как выцветание или поля бумаги/книги.
Вы можете проверить, есть ли в PDF-файле ресурсы шрифта (довольно хороший показатель от того, содержит ли документ какие-либо шрифты) с помощью функции HasFontResources в Quick PDF Library Lite - бесплатном компоненте ActiveX, который теоретически можно использовать из Java с помощью надстройки стороннего производителя. .
Проверка ресурсов текста / шрифтов является наиболее точным методом определения того, был ли PDF-файл создан в процессе сканирования. Это вкупе с предложением Марка Стивенса искать изображение большого размера и т. Д.
Но, к сожалению, не существует 100% гарантированно точного метода проверки, был ли отсканирован PDF-файл.
Знаете ли вы, как документ был бы отсканирован, если бы он был? Хотя элемент метаданных «Создатель» не является обязательным, он может быть полезной подсказкой, если ваш сканер устанавливает его.
Я просто сужу по размеру. Отсканированные документы неоправданно большие. До 1000 страниц мое практическое правило: истинный текст pdf: 1-20 M, отсканированный - от 30 до 100 M.