SVG в PDF
онлайн
Векторные картинки собираются в документ с настраиваемой плотностью отрисовки. Прозрачный фон сохраняется, а размеры берутся из самой разметки — даже когда в ней указан только viewBox.
Вектор станет картинкой, и это стоит знать заранее
SVG хорош тем, что не имеет собственного разрешения: его можно увеличивать сколько угодно, линии останутся чёткими. PDF тоже умеет хранить векторную графику, так что теоретически одно могло бы перейти в другое без потерь. На практике библиотеки, которая делает это в браузере, не существует: pdf-lib встраивает только растр.
Поэтому мы честно растеризуем и даём управлять плотностью. Отрисовка один к одному дала бы лесенку при печати, четырёхкратная утяжеляет файл в разы, три — разумная середина. Отдельно обрабатывается частый случай иконок из наборов: у них в разметке бывает только viewBox без ширины и высоты, браузер в такой ситуации отдаёт нулевой размер, и наивный конвертер рисует картинку в дефолтные 300 на 150 пикселей с обрезкой. Мы разбираем viewBox сами.
- Несколько картинок в один документ, по странице на каждую
- Плотность растра 2×, 3× или 4× на выбор
- Прозрачный фон сохраняется — растеризуем в PNG, а не в JPEG
- Размеры берутся из viewBox, если ширина и высота не указаны
- Файлы не покидают устройство