Как создать PDF со отсканированными страницами, но выбрать текст?

32

Сегодня я получил PDF от нашего поставщика, и он содержал несколько напечатанных и отсканированных страниц с подписями и т. Д. Я открыл его в Acrobat Reader DC. Но, к моему удивлению, текст из явно отсканированных изображений можно было выбрать и скопировать как текст. Смотрите скриншот:

PDF отсканирован с возможностью выбора текста

Очевидно, за этим стоит некоторое OCR, поскольку скопированный текст содержит ошибки. Но как это возможно? Я никогда не видел этого раньше, как это можно создать?

Войтех Донхал
источник
4
Такие пакеты, как github.com/gkovacs/pdfocr, позволяют это сделать для уже существующих изображений PDFS
exussum
Чем это отличается от результатов, которые вы получаете с помощью Batch-OCR для многих PDF-файлов ?
Дмитрий Григорьев
@DmitryGrigoryev Я никогда не видел этот тип PDF прежде, поэтому я спросил, что это было. В ответах нет ничего о прошивке принтера OCR или OCRMyPDF, и вопрос, и ответы очень разные. Я не вижу ничего дублирующего, за исключением того, что оба вопроса касаются OCR и PDF-файлов.
Войтех Доннал
Ну, я никогда не видел OCR PDF, который отличается от того, что вы опубликовали, поэтому ваш вопрос мне кажется странным.
Дмитрий Григорьев

Ответы:

53

Это (вопреки некоторым другим ответам здесь), скорее всего, никак не связано с Acrobat.

Большинство (все ?!) профессиональных сканеров документов и большинство полупрофессиональных сканеров будут автоматически выполнять распознавание, когда вы выберете «Сохранить как PDF» и отметите флажок «Доступный для поиска» в настройках. Более дешевые модели «потребительского уровня» будут выполнять распознавание текста на подключенном ПК, типичные сетевые сканеры делают это внутренне.

Слово «доступный для поиска» означает не больше и не меньше, чем то, что сканер выполнит OCR, затем сгенерирует страницу с отсканированными растровыми изображениями внутри и наложит их на невидимые символы OCR, каждый из которых будет размещен над соответствующим символом на растровом изображении.

Таким образом, вы можете искать, а также выбирать, копировать и вставлять «растровое изображение», как по волшебству. Однако это не волшебство. На самом деле, вы просто копируете невидимый текст.

Сканер также может выполнять некоторые дополнительные операции, такие как создание большого изображения из множества маленьких плиток, которые также используются повторно. Это приводит к гораздо меньшему размеру документа, чем это было бы возможно на самом деле, но может также привести к забавным сюрпризам (не таким уж смешным, если они случаются с вами!), Таким как Xerox меняет историю ваших счетов , по иронии судьбы, даже когда OCR не выполняется, в зависимости от на прошивке.

Damon
источник
Да, это наиболее вероятно, как они создали это, я очень сомневаюсь, что они используют полный Adobe Acrobat.
Войтех Дональ
Мы сделали это, разместив весь текст за отсканированным изображением там, где OCR сообщил, где он нашел каждый текстовый узел.
Торбьерн Равн Андерсен
10

Но как это возможно?

По сути, программа выполняет OCR для входного файла, а затем помещает невидимый слой текста поверх изображения. Кроме того, он может также поместить видимый слой текста под картинкой, давая тот же эффект.

Когда вы выбираете что-то, картинка не имеет значения, потому что текстовый слой выделен.

как это можно создать?

Есть несколько способов. Учитывая, что Acrobat уже был предложен, я добавлю несколько бесплатных опций (и, к счастью, вы не обязаны использовать их в Windows).

PDF-XChange Viewer

Это родная программа для Windows от Tracker Software . Бесплатная версия прекрасно работает под Wine, если вы используете 32-разрядную версию с 32-разрядным префиксом, поэтому вы можете использовать ее в Windows, macOS и Linux. В последних двух случаях вам понадобятся PlayOnMac или PlayOnLinux соответственно.

Вот фотография из этого ответа, которую я оставил в Ask Ubuntu:

Снимок экрана PDF-XChange Viewer под Wine

OCRmyPDF

Это мультиплатформенная программа, написанная на Python , основанная на Ghostscript, Tesseract и Unpaper. Из документов:

Что делает OCRmyPDF

OCRmyPDF анализирует каждую страницу PDF-файла, чтобы определить цветовое пространство и разрешение (DPI), необходимые для захвата всей информации на этой странице без потери содержимого. Он использует Ghostscript для растеризации страницы, а затем выполняет OCR на растровом изображении, чтобы создать «слой» OCR. Затем слой снова возвращается в исходный файл PDF.

Его можно легко установить на производные Debian и Ubuntu:

apt-get install ocrmypdf

Или на macOS:

brew tap jbarlow83/ocrmypdf
brew install ocrmypdf

В Windows вам нужно использовать образ Docker. Смотрите официальные документы для деталей.

Использование очень простое, и я предлагаю вам использовать необязательные -d(deskew) и -c(clean) параметры для лучшего результата. Это выровняет каждую страницу и очистит маленькие точки / недостатки перед запуском процесса OCR.

Вы можете (и должны) предоставить язык -l.

Вот пример, взятый из этого искаженного документа, написанного на итальянском языке:

Пример для OCRmyPDF

Команда, которую я использовал, была:

ocrmypdf -l ita -d -c input.pdf output.pdf

Онлайн инструменты

Есть несколько онлайн-инструментов, которые делают то же самое. Примечательно, что PDF24 содержит бесплатную веб-версию OCRmyPDF, которую можно использовать без ограничений.

Смотрите также:

Андреа Лаззаротто
источник
Спасибо за этот ответ, я попробовал OCRMyPDF, и он работал очень хорошо, но, к сожалению, нужная мне языковая поддержка еще не достигла зрелости, поэтому результаты еще не очень пригодились.
Войтех Доннал
@ VojtěchDohnal какой язык вас интересует? Вы установили соответствующий языковой пакет для Tesseract? Смотрите список здесь: macports.org/ports.php?by=name&substr=tesseract-
Андреа
4

Возможно, это связано с функцией распознавания текста в Acrobat :

Acrobat может распознавать текст в любом PDF-файле или графическом файле на десятках языков. Все, что вам нужно сделать, это открыть отсканированный документ или изображение, которое вы хотите, чтобы OCR, а затем нажмите синюю кнопку Инструменты в правом верхнем углу панели инструментов. На этой боковой панели выберите вкладку «Распознать текст», затем нажмите кнопку «В этом файле».

...

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

пижон
источник
Это работает и в Reader? Другие документы не работают таким образом для меня ...
Войтех Дональ
Боюсь, что нет, но взгляните на эту статью: pdf.wondershare.com/pdf-software-comparison/…
duDE
3

С сайта Adobe

Распознать текст в отсканированном PDF-файле

Когда вы сканируете бумажные документы в PDF, вы действительно просто фотографируете эти документы. Это отлично подходит для фотографий и других печатных изображений, но что, если у вас есть документ на 200 страниц, в котором вам нужно найти определенное слово или фразу? Используйте Acrobat для распознавания текста в этом отсканированном файле, что делает текстовое содержимое доступным для поиска и использования.

  1. Открыв сканированный документ в Acrobat, откройте панель «Инструменты» и раскройте панель «Распознавание текста». Если вы не видите «Распознавание текста» на панели «Инструменты», вы можете добавить его, выбрав меню в верхнем правом углу (изображение ниже - посмотрите, куда указывает эта маленькая красная стрелка? Нажмите здесь).
  2. Нажмите «В этом файле», чтобы отсканировать открытый документ. Вы можете просто принять настройки по умолчанию и нажать «Хорошо», когда появится окно «Распознать текст». Acrobat преобразует изображение в полезный текст; чтобы проверить это, просто попробуйте отредактировать слово или предложение с помощью панели редактирования контента. Разве это не круто !?
Мате Юхас
источник
Спасибо, но я только что открыл PDF в Reader DC и ничего особенного с ним не сделал, другие документы PDF со сканированными страницами не работают таким образом автоматически ...
Vojtěch Dohnal
5
OCR было сделано до того, как вы получили файл, когда текст распознается, он сохраняется вместе с PDF.
Máté Juhász
@ VojtěchDohnal Вам, вероятно, нужен полный акробат, а не только читатель
Торбьерн Равн Андерсен