Введение
Преобразование векторных макетов SVG в растровые форматы или готовые к печати документы — частая задача при администрировании серверов и сборке веб-проектов. Консольная утилита cairosvg предоставляет легковесный и производительный инструментарий для рендеринга SVG в PNG и PDF прямо из командной строки Linux. В данном материале мы разберем развертывание пакета в Ubuntu, ключевые параметры трансформации, управление плотностью пикселей и построение простого конвейера автоматизации.
1. Установка утилиты CairoSVG и подготовка тестового макета
Для развертывания инструмента в дистрибутивах Ubuntu достаточно обновить локальные индексы и инсталлировать соответствующий модуль командой sudo apt-get update -qq && sudo apt-get install -y python3-cairosvg.

Утилита cairosvg базируется на графической библиотеке Cairo и обеспечивает быстрый экспорт векторных структур в форматы PNG, PDF или PostScript. Работоспособность установленного пакета проверяется вызовом cairosvg --version.
⚙️ [Ключевые параметры запуска]
-f, --format : целевой формат генерируемого файла (png, pdf, ps, svg).-o, --output : путь и имя для сохранения результирующего файла.-w, --width : жестко заданная ширина выходного изображения в пикселях.-h, --height : высота генерируемого изображения в пикселях.-s, --scale : коэффициент масштабирования относительно базовых размеров холста.-d, --dpi : плотность пикселей на дюйм (разрешение растеризации).-b, --background : цвет подложки при необходимости заменить прозрачный слой.

Чтобы протестировать механизм трансформации, создадим простой векторный эскиз sample.svg при помощи встроенного механизма cat и синтаксиса Here Document:

Убедиться в корректности записи и оценить размер исходника позволяет команда ls -lh sample.svg.

2. Базовый рендеринг векторной графики в форматы PNG и PDF
Для прямой растеризации векторного файла в формат PNG вызываем утилиту с указанием источника и флага назначения: cairosvg sample.svg -o sample.png. Движок автоматически определяет требуемый формат по расширению .png, избавляя от необходимости прописывать его вручную.

С помощью диагностической утилиты file sample.png инспектируем полученный файл, проверяя цветовую модель, глубину цвета и фактические габариты растра.

Когда требуется сгенерировать полиграфический макет или встроить графику в электронный документ, применяется вывод в PDF: cairosvg sample.svg -o sample.pdf. Векторные контуры при этом сохраняют идеальную четкость без потерь.

Структуру и соответствие стандарту сформированного документа подтверждаем командой file sample.pdf.

3. Тонкая настройка: управление DPI, габаритами и масштабированием
Если конечное изображение должно строго соответствовать сетке верстки, его размеры фиксируются параметрами -W и -H, как в примере: cairosvg sample.svg -o sample_800px.png -W 800 -H 800.

Для пропорционального увеличения изображения без искажения геометрии задействуется флаг масштабирования -s. Запуск cairosvg sample.svg -o sample_scale2x.png -s 2.0 формирует растр вдвое большего размера с сохранением идеальной резкости контуров.

Подготовка графики к печати требует высокой плотности точек. Аргумент -d задает необходимое разрешение — например, команда cairosvg sample.svg -o sample_300dpi.png -d 300 генерирует изображение полиграфического качества с детализацией 300 DPI.

Итоговые различия в объеме и характеристиках полученных файлов наглядно демонстрирует команда ls -lh sample*.png.

4. Автоматизация пакетной обработки SVG через Bash-скрипт
На практике графику редко обрабатывают поштучно. Для настройки конвейера массовой обработки создадим тестовый каталог и наполним его копиями исходного файла: mkdir -p svg_batch && cp sample.svg svg_batch/icon1.svg && cp sample.svg svg_batch/icon2.svg.
![]()
Используя итерационный цикл for оболочки Bash и встроенную подстановку суффиксов ${f%.svg}.png, конвертируем все векторные элементы каталога в PNG одной командой: for f in svg_batch/*.svg; do cairosvg "$f" -o "${f%.svg}.png"; done.

Завершив выполнение цикла, проверяем содержимое целевого каталога вызовом ls -lh svg_batch/, чтобы удостовериться в успешной генерации всех растровых дубликатов.

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