Как узнать, содержит ли PDF-файл только изображения или он был отсканирован методом распознавания текста для поиска?
Вопрос
У меня есть куча PDF-файлов, полученных из отсканированных документов.Файлы содержат смесь изображений и текста.Некоторые из них были отсканированы как изображения без распознавания текста, поэтому каждая страница PDF представляет собой одно большое изображение, даже если вся страница полностью состоит из текста.Другие были отсканированы с помощью распознавания текста и содержат изображения и текст с возможностью поиска, где присутствует текст.Во многих случаях даже слова на изображениях были сделаны доступными для поиска.
Я хочу создать автоматизированный процесс распознавания текста во всех отсканированных документах с помощью OCR с помощью Acrobat 8 Pro, но я не хочу повторно распознавать файлы, которые уже проходили процесс распознавания в прошлом.Кто-нибудь знает, есть ли способ определить, какие из них содержат только изображения, а какие уже содержат текст с возможностью поиска?
Я планирую сделать это на C # или VB.NET но я не думаю, что возможность отличить два типа файлов друг от друга зависит от языка.
Решение
Отсканированные изображения, преобразованные в PDF, которые впоследствии были распознаны, чтобы сделать текст доступным для поиска, обычно содержат текстовые части, отображаемые как "невидимые".Таким образом, то, что вы видите на экране (или на бумаге при печати), по-прежнему является исходным изображением.Но когда ты Поиск успешно, вы получите выделенные хиты, которые находятся в невидимом тексте.
Я бы порекомендовал вам ознакомиться с инструментами командной строки, производными от XPDF pdffonts(.exe)
, pdfinfo(.exe)
и pdftotext(.exe)
.Смотрите здесь для загрузки: http://www.foolabs.com/xpdf/download.html
Пример использования pdffonts
:
C:\downloads\> pdffonts cisco-ip-phone-7911-guide6.1.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
LGOKFL+Univers-BlackOblique Type 1C yes yes no 13171 0
LGOKGM+Univers-Black Type 1C yes yes no 13172 0
[....]
В этом PDF-файле используются шрифты (обозначенные столбцом 'name'), они встроены (обозначены 'yes' в столбце 'emb') и используются подмножества шрифтов (обозначены 'yes' в столбце 'sub').
C:\downloads\> pdffonts examle1.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Univers-BlackOblique Type 1C yes no no 14 0
Arial TrueType no no no 15 0
В этом PDF-файле используются 2 шрифта (обозначенные столбцом "название").Шрифт 'Universe-BlackOblique' встроен полностью (обозначается 'yes' в столбце 'emb' и 'no' в столбце 'sub').Шрифт 'Arial' также используется, но не встроен.
C:\downloads\> pdffonts examle2.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
В этом PDF-файле не используется ни одного шрифта, и, следовательно, в него не встроен никакой текст (поэтому и распознавания текста тоже нет).
Пример использования pdftotext
:
C:\downloads\> pdftotext ^
-layout ^
cisco-ip-phone-7911-guide6.1.pdf ^
cisco-ip-phone-7911-guide6.1.txt
Это позволит извлечь все текстовые строки из PDF-файла (пытаясь сохранить некоторое сходство с оригинальным макетом).Если в PDF-файле нет текста, вы бы знали, что не было распознавания текста...
Другие советы
Различные инструменты PDF могут сообщить вам, есть ли текст.Некоторые из них доступны в виде COM-элементов управления и, возможно, даже встроенных .СЕТЕВЫЕ.
Откройте документ в acrobat.Перейдите в меню Файл -> Свойства.Загляните в раздел "Дополнительно" и найдите PDF-производителя.Если там написано что-то вроде "Захват бумаги ...", значит, оно было распознано.
Надеюсь, это поможет.
pdfspy от Apago извлекает информацию из PDF в XML-файл.Он включает в себя информацию о документе, включая изображения и текст.Для вашего проекта полезная информация включает в себя количество изображений и их размер, а также то, где присутствует OCR (скрытый) текст.
Извините, что копаюсь в старой теме, но если вы нашли это, взгляните на мою тему:
Программа пакетного распознавания для PDF-файлов
вы можете получить дополнительную информацию о PDF-файле, загрузив его в unix / linux / osx или открыв в режиме "rb" в python.(конечно, это python, и вы не хотели его использовать, но, возможно, в нем есть что-то эквивалентное).
Используйте "dtsearch", чтобы создать индекс для всех PDF-файлов...затем "просмотрите файл журнала" процесса индексирования, чтобы проверить список PDF-файлов, которые не были проиндексированы.
Очень низкотехнологичное решение:любой файл, содержащий отсканированный текст, несомненно, будет содержать букву "а", поэтому выполните поиск по всему содержимому файла, которое не содержит буквы а.т. е."НЕ а".Любой файл, который появится, не будет распознан