Конвертация 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).
- сжатие по умолчанию, предоставляемое Pillow. Для битональных изображений код генерации PDF говорит, если
- Если 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