[Обзор инструмента] img2pdf: Утилита для преобразования изображений в PDF без потерь качества

img2pdf — это одна из самых быстрых и эффективных утилит для преобразования изображений в PDF в среде Linux. Она оптимизирована для объединения нескольких изображений в один PDF-документ или преобразования отдельного изображения в PDF и основана на Python.

В этом посте я хочу рассказать об инструменте, которым сам пользуюсь время от времени и каждый раз поражаюсь его возможностям. Это одна из моих любимых утилит благодаря невероятной скорости, легкости, характерной для Linux, и удобству использования с пайпами.

Изображение, показывающее процесс преобразования из изображения в PDF

1. Принцип работы (Working Principle)



Ключевой особенностью является «объединение без перекодирования (No Re-encoding)». * Традиционный подход (например, ImageMagick): Изображение считывается, анализируются пиксельные данные, а затем оно сжимается (с потерями) в соответствии с форматом PDF. Этот процесс требует значительных ресурсов CPU и может привести к ухудшению качества изображения. * Подход img2pdf: Бинарные данные файла изображения помещаются в PDF-контейнер без изменений (Lossless). * Преимущества: Невероятно высокая скорость, 100% сохранение исходного качества изображения и экономичный размер выходного файла.

2. Установка и удаление (Installation & Removal)

Установка (для Ubuntu/Debian)

sudo apt update
sudo apt install img2pdf

Удаление

# Удалить только программу
sudo apt remove img2pdf

# Полностью удалить конфигурационные файлы и зависимости
sudo apt purge img2pdf
sudo apt autoremove

3. Основные способы использования (Usage Guide)



Базовое объединение

Используется для объединения всех PNG-файлов в текущем каталоге в один PDF-документ.

img2pdf *.png -o output.pdf

Объединение в определённом порядке

Вы можете указать порядок, перечислив имена файлов напрямую.

img2pdf image1.png image2.png image3.png -o output.pdf

Настройка размера страницы и полей (расширенные возможности)

Полезно, когда нужно подогнать изображение под определённый формат (например, A4) или добавить поля.

sudo apt update
# Подогнать размер изображения под A4 и добавить поля 2 см
img2pdf --pagesize A4 --border 2cm *.png -o output.pdf

Указание определённого разрешения (DPI)

Используется, когда нужно принудительно задать разрешение выводимого изображения.

img2pdf --dpi 300 *.png -o output.pdf

4. Советы для разработчиков (Developer's Note)

  • Проблема сортировки: Символ подстановки (*) в терминале Linux воспринимает числа как строки.
    • Пример: Файлы могут быть объединены в следующем порядке: 1.png, 10.png, 2.png.
    • Решение: Самый надёжный способ — сохранять имена файлов с одинаковым количеством цифр, например, 01.png, 02.png ... 10.png.
  • Использование пайпов: Очевидно, что использование пайпов — одно из самых удобных преимуществ Linux. Вы можете получить результат выполнения другой команды и сразу же создать из него PDF.
find . -name "*.png" | sort | xargs img2pdf -o output.pdf

Краткое резюме: "Лучший инструмент для создания PDF-файлов без потерь качества, максимально быстро и в стиле Linux."