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

5077
Vojtěch Dohnal

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

PDF scanned with selectable text

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

31
Такие пакеты, как https://github.com/gkovacs/pdfocr, позволяют это делать для уже существующих изображений PDFS. exussum 6 лет назад 4
Чем это отличается от результатов, которые вы получаете по [Batch-OCR много PDF-файлов] (https://superuser.com/questions/424459/batch-ocr-many-pdfs)? Dmitry Grigoryev 6 лет назад 0
@DmitryGrigoryev Я никогда не видел этот тип PDF прежде, поэтому я спросил, что это было. В ответах нет ничего о прошивке принтера OCR или OCRMyPDF, и вопрос, и ответы очень разные. Я не вижу ничего дублирующего, за исключением того, что оба вопроса касаются OCR и PDF-файлов. Vojtěch Dohnal 6 лет назад 0
Ну, я никогда не видел OCR PDF, который отличается от того, что вы опубликовали, поэтому ваш вопрос мне кажется странным. Dmitry Grigoryev 6 лет назад 0

4 ответа на вопрос

53
Damon

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

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

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

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

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

Да, это наиболее вероятно, как они создали это, я очень сомневаюсь, что они используют полный Adobe Acrobat. Vojtěch Dohnal 6 лет назад 0
Мы сделали это, поместив весь текст _ind__ отсканированное изображение туда, где OCR сообщил, где он нашел каждый текстовый узел. Thorbjørn Ravn Andersen 6 лет назад 0
9
Andrea Lazzarotto

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

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

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

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

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

PDF-XChange Viewer

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

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

Screenshot of PDF-XChange Viewer under 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) параметры для лучшего результата. Он выправит каждую страницу и очистит мелкие точки / недостатки перед запуском процесса распознавания.

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

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

Example for OCRmyPDF

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

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

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

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

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

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

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

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

...

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

Это работает и в Reader? Другие документы не работают таким образом для меня ... Vojtěch Dohnal 6 лет назад 0
Боюсь, что нет, но взгляните на эту статью: https://pdf.wondershare.com/pdf-software-comparison/adobe-reader-ocr.html. duDE 6 лет назад 0
3
Máté Juhász

С сайта Adobe

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

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

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

Похожие вопросы