Сколько раз вы пытались выбрать содержимое PDF, но, к сожалению, содержимое PDF было изображением? Довольно раздражает, не так ли? К счастью, если вы работаете над каким-либо приложением, которому нужно конвертировать изображения в текст, OCRmyPDF является правильным инструментом для достижения этой цели. Хотя в Ubuntu 16.10 и выше его довольно просто установить, в Ubuntu 16.04 процесс установки немного сложнее, поэтому вам нужно будет выполнить несколько дополнительных шагов.
В этом уроке мы покажем вам, как правильно установить этот инструмент в вашей системе Ubuntu 16.04.
Какова цель этого инструмента?
Чтобы быстро объяснить, чего этот инструмент поможет вам достичь, мы рассмотрим следующий простой случай. У нас есть PDF в результате сканирования нескольких страниц из настоящей книги. Если вы откроете PDF-файл с помощью некоторого средства просмотра PDF-файлов, вы увидите, что с большинством из них текст не может быть выделен, PDF-файл в основном представляет собой изображение:
Тем не менее, люди ожидают и будут нуждаться в возможности выделять текст мышью:
Это в основном то, что будет создавать инструмент, новый PDF со слоем текста, который можно выбрать поверх исходного PDF, чтобы пользователь мог легко извлечь информацию.
1. Установите OCRmyPDF
OCRmyPDF добавляет текстовый слой OCR к отсканированным PDF-файлам, позволяя искать их или вставлять при копировании. Этот инструмент имеет:
- Создает для поиска PDF / A файл из обычного PDF
- Размещает текст OCR точно под изображением, чтобы облегчить копирование / вставку
- Сохраняет точное разрешение оригинальных встроенных изображений
- По возможности вставляет информацию OCR как операцию «без потерь», не прерывая работу другого контента.
- Оптимизирует PDF-изображения, часто создавая файлы меньше, чем входной файл
- Если запрошено перекошено и / или очищено изображение перед выполнением OCR
- Проверяет входные и выходные файлы
- Распределяет работу по всем доступным ядрам процессора
- Пользы Тессеракт OCR двигатель
- Поддерживает больше, чем 100 языков признан Тессерактом
- Боевые испытания на тысячах PDF-файлов, набор тестов и непрерывная интеграция
Чтобы установить этот инструмент на свой сервер Ubuntu, вам нужно будет выполнить несколько дополнительных шагов, так как для этой версии Ubuntu нет доступных пакетов. Как будто этого было недостаточно, OCRmyPDF 8.0 и новее требуют Python 3.6, однако Ubuntu 16.04 поставляется с Python 3.5, поэтому вам нужно установить Python 3.6 на нем. Сначала установите пакет свойств программного обеспечения Python, выполнив следующую команду:
# Update repos
sudo apt-get update
# Install the Python Software Properties package
sudo apt-get install -y software-properties-common python-software-properties
После того, как свойства программного обеспечения python установлены, вы можете добавить репозиторий Python 3.6 и требуемую версию Tesseract в вашу систему с помощью следующих команд, не забудьте также обновить репозитории:
# Add Python 3.6 repo
sudo add-apt-repository -y ppa:jonathonf/python-3.6
# Add Tesseract OCR repo
sudo add-apt-repository -y ppa:alex-p/tesseract-ocr
# Update repos once again, otherwise during the installation of packages later, some will fail e.g Python
sudo apt-get update
После утилизации репозиториев установите необходимые пакеты, чтобы OCRmyPDF работал правильно:
sudo apt-get install ghostscript
sudo apt-get install libexempi3
sudo apt-get install libffi6
sudo apt-get install pngquant
sudo apt-get install python3.6
sudo apt-get install qpdf
sudo apt-get install tesseract-ocr
sudo apt-get install unpaper
После установки всех пакетов вам также понадобится сделать Python доступным из Path. sudo apt-get install python3.6
Команда установит двоичный файл Python 3.6 в /usr/bin/python3.6
наряду с системным Python 3.5. Не удаляйте систему Python. Это также установит Tesseract 4.0 из PPA, поскольку версия, доступная в Ubuntu 16.04, слишком старая для OCRmyPDF.
На последнем этапе вам нужно будет установить саму библиотеку OCRmyPDF через Python, используя pip! Выполните следующие инструкции, чтобы установить его:
Заметка
Возможно, вам придется запускать эти команды каждый раз, когда ваша система Ubuntu перезагружается, так как ocrmypdf снова не будет доступен в пути.
export PATH=$HOME/.local/bin:$PATH
pip3 install --user ocrmypdf
После установки вы сможете запустить утилиту из командной строки. Вы можете проверить это, распечатав версию инструмента в CLI с:
# At this moment outputs 8.0.1
ocrmypdf --version
Для получения дополнительной информации об этом инструменте, пожалуйста, посетите официальный репозиторий на Github здесь и документация. Linux, UNIX и macOS поддерживаются. Windows напрямую не поддерживается, но есть доступный образ Docker, который работает в Windows.
2. Использование OCRmyPDF
Использование OCRmyPDF довольно просто и легко. Просто укажите в качестве первого аргумента путь входного PDF и имя нового PDF, который будет создан из входного файла:
# Create a selectable layer of text in the PDF from the input file and create a new PDF file with the result
ocrmypdf input_file.pdf output_file.pdf
После выполнения команды инструмент запускается с заданием, и до его завершения потребуется некоторое время. Выход CLI будет похож на:
INFO - Optimize ratio: 1.00 savings: 0.0%
INFO - Output file is a PDF/A-2B (as expected)
INFO - Page orientations detected: 1 2
Инструмент CLI предлагает также некоторые параметры, которые вы можете настроить в соответствии со своими потребностями, например, указание языка текста, который будет распознан, фиксирование ориентации страниц в PDF и т. Д.:
ocrmypdf # it's a scriptable command line program
-l eng+fra # it supports multiple languages
--rotate-pages # it can fix pages that are misrotated
--deskew # it can deskew crooked PDFs!
--title "My PDF" # it can change output metadata
--jobs 4 # it uses multiple cores by default
--output-type pdfa # it produces PDF/A by default
input_scanned.pdf # takes PDF input (or images)
output_searchable.pdf # produces validated PDF output