Как узнать, содержит ли PDF-файл только изображения или он был отсканирован методом распознавания текста для поиска?

StackOverflow https://stackoverflow.com/questions/1489733

  •  18-09-2019
  •  | 
  •  

Вопрос

У меня есть куча 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 (скрытый) текст.

http://www.apagoinc.com/pdfspy

Извините, что копаюсь в старой теме, но если вы нашли это, взгляните на мою тему:

Программа пакетного распознавания для PDF-файлов

вы можете получить дополнительную информацию о PDF-файле, загрузив его в unix / linux / osx или открыв в режиме "rb" в python.(конечно, это python, и вы не хотели его использовать, но, возможно, в нем есть что-то эквивалентное).

Используйте "dtsearch", чтобы создать индекс для всех PDF-файлов...затем "просмотрите файл журнала" процесса индексирования, чтобы проверить список PDF-файлов, которые не были проиндексированы.

Очень низкотехнологичное решение:любой файл, содержащий отсканированный текст, несомненно, будет содержать букву "а", поэтому выполните поиск по всему содержимому файла, которое не содержит буквы а.т. е."НЕ а".Любой файл, который появится, не будет распознан

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top