Распознавание pdf. OCRmyPDF

2024-06-07 · 2 мин. для прочтения

Распознавание pdf. OCRmyPDF

Содержание

1 Общая информация

2 Примеры использования

2.1 Распознавание

  • Список языков для распознавания:
    tesseract --list-langs
    
  • Преобразовать сканированный файл в файл PDF/A с распознаванием русского и английского языков:
    ocrmypdf -l rus+eng input.pdf output.pdf
    
  • Заменить отсканированный PDF-файл PDF/A-файлом:
    ocrmypdf input.pdf
    
  • Пропустить страницы входного PDF-файла смешанного формата, которые уже содержат текст:
    ocrmypdf --skip-text input.pdf output.pdf
    
  • Очистите, исправьте перекос и поверните плохо отсканированные страницы:
    ocrmypdf --clean --deskew --rotate-pages input.pdf output.pdf
    
  • Убрать фон:
    ocrmypdf --clean --remove-background input.pdf output.pdf
    
  • Разделить сдвоенные страницы:
    ocrmypdf -l rus+eng --clean --clean-final --unpaper-args '--layout double' input.pdf output.pdf
    
  • Контролируем оптимизацию:
    ocrmypdf --optimize 3 --jbig2-lossy input.pdf output.pdf
    
  • Распознавание с оптимизацией:
    ocrmypdf -l rus+eng --optimize 3 --jbig2-lossy input.pdf output.pdf
    
  • Задать метаданные PDF-файла:
    ocrmypdf --skip-text --title "<title>" --author "<author>" --subject "<subject>" --keywords "<keyword; key phrase; ...>" input_file.pdf output.pdf
    

2.2 Не распознавать pdf-файл

  • При установке параметра --tesseract-timeout 0 OCRmyPDF будет обрабатывать изображения без выполнения OCR.
    ocrmypdf --tesseract-timeout=0 --remove-background input.pdf output.pdf
    
  • Удалить весь распознанный текст из pdf-файла:
    ocrmypdf --tesseract-timeout 0 --optimize 3 --force-ocr input.pdf output.pdf
    
  • Оптимизация изображений без выполнения распознавания:
    ocrmypdf --tesseract-timeout=0 --optimize 3 --skip-text input.pdf output.pdf
    

2.3 OCR для больших изображений

  • Иногда не распознаются некоторые страницы.
  • Tesseract имеет внутренние ограничения по размеру изображений, которые он обработает.
  • По умолчанию включён --tesseract-downsample-large-images, OCRmyPDF будет понижает разрешение изображений.
  • Эту функцию можно отключить с использованием --no-tesseract-downsample-large-images.
  • Необходимо установить --tesseract-timeout достаточно большим:
ocrmypdf --tesseract-timeout 600 --tesseract-downsample-large-images bigfile.pdf output.pdf
  • Можно установить границу уменьшения в 5000 пикселей:
ocrmypdf --tesseract-timeout 120 --tesseract-downsample-large-images --tesseract-downsample-above 5000 bigfile.pdf output_downsampled_ocr.pdf

2.4 Используемые мной команды

  • Удалить весь распознанный текст из pdf-файла (если текст кракозябрами):
    ocrmypdf --tesseract-timeout 0 --optimize 3 --force-ocr input.pdf output.pdf
    
  • Распознать файл:
    ocrmypdf -l rus+eng --optimize 3 --tesseract-timeout 600 --tesseract-downsample-large-images input.pdf output.pdf
    
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.