Конвертация djvu в pdf. dpsprep

2025-04-29 · 2 мин. для прочтения

Конвертация djvu в pdf. dpsprep.

Содержание

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

  • Репозиторий: https://github.com/kcroker/dpsprep
  • Конвертер DjVu в PDF.
  • Позволяет сохранять структуру документа (например, оглавление) и текстовые слои (например, OCR).

2 Параметры

  • -q, --quality : качество изображений на выходе. Используется только для сжатия JPEG, т.е. изображений RGB и Grayscale. Передается напрямую в Pillow и оптимизатору OCRmyPDF.
  • -p, --pool-size : размер пула MultiProcessing для обработки постраничных операций.
  • -v, --verbose : отображение отладочных сообщений.
  • -o, --overwrite : перезаписать файл назначения.
  • -w, --preserve-working : сохранять рабочий каталог после завершения скрипта.
  • -d, --delete-working : перед записью в рабочий каталог удалите все существующие файлы.
  • -t, --no-text : отключить генерацию текстовых слоев. Подразумевается --ocr.
  • -m, --mode : режим изображения. По умолчанию запрашивается режим изображения каждой страницы у libdjvu. Иногда имеет смысл принудительно использовать битональные изображения, поскольку они хорошо сжимаются.
  • --ocr : выполнить OCR через OCRmyPDF, а не пытаться преобразовать текстовый слой. Если этот параметр имеет значение, это должен быть словарь JSON с параметрами, которые будут переданы в OCRmyPDF.
  • -O1 : используйте оптимизацию изображений PDF без потерь с помощью OCRmyPDF (без выполнения OCR).
  • -O2 : используйте оптимизацию изображений PDF от OCRmyPDF.
  • -O3 : используйте агрессивную оптимизацию изображений PDF с потерями от OCRmyPDF.

3 Выполнение сжатия

  • Компрессия поводится в два этапа:
    • сжатие по умолчанию, предоставляемое Pillow. Для битональных изображений код генерации PDF говорит, если libtiff доступен, для сжатия используется group4.
    • если установлен OCRmyPDF, его оптимизацию PDF можно использовать с помощью флагов -O1, -O2, -O3 (это не требует OCR).
  • Если OCRmyPDF запускается вручную, обратите внимание, что команда оптимизации, предложенная в документации (параметр --tesseract-timeout к 0 ) может испортить существующие текстовые слои.
  • Чтобы выполнить только оптимизацию PDF, вы можете использовать следующий недокументированный способ вызова:
    python -m ocrmypdf.optimize <input_file> <level> <output_file>
    

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

  • Создать файл file.pdf в текущем каталоге:
    dpsprep /wherever/file.djvu
    
  • Создать output.pdf с пониженным качеством изображения и агрессивной оптимизацией изображений PDF:
    dpsprep ---quality=30 -O3 input.djvu output.pdf
    
  • Использовать большой пул рабочих процессов:
    dpsprep --pool=16 input.djvu
    
  • Принудительно сделать изображения двуцветными:
    dpsprep --mode bitonal input.djvu
    
  • Игнорировать текстовый слой и запустить OCRmyPDF:
    dpsprep --ocr '{"language": ["rus", "eng"]}' input.djvu
    
  • Просто проигнорируйте текстовый слой без OCR:
    dpsprep --no-text input.djvu
    
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.