Существует ли бесплатный инструмент командной строки linux для преобразования SVG в PDF и / или какой-нибудь широко используемый растровый формат (например, PNG)?
4 ответа
Imagemagick хорош, когда растеризованный (пиксельный) вывод - это то, что вы хотите (или, по крайней мере, приемлемо), но в противном случае это плохой выбор, поскольку он эффективно встраивает в pdf растеризованную версию того, что вы пытаетесь преобразовать. Весь смысл svg/pdf в том, что он может быть векторизован, тем самым уменьшен в размерах, оставаясь плавным при любом разрешении.
Поэтому я бы определенно рекомендовал использовать Inkscape или CarioSVG. Последний имеет несколько утилит командной строки именно для этой цели (svg2pdf
, svg2ps
и svg2png
). Единственное неудобство в том, что это в основном просто яйцо питона, поэтому, если у вас нет настроенной среды питона и вы не достаточно сообразительны (или не заботитесь о том, чтобы ее настроить), тогда эта опция - нет идти. Я попробовал себя, но у меня были проблемы с установкой необходимого libcairo
(не то чтобы я слишком старался).
Inkscape - это круто, но клик немного неуклюж, если вы хотите, чтобы быстрая команда выполнила всю работу за вас. Я собрал пару маленьких сценариев, чтобы позаботиться обо всем этом для меня:
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done
Поместите первый в ~/bin/svg2pdf
а последний в ~/bin/svg2png
, запустите chmod +x
на обоих из них, чтобы сделать их исполняемыми, и boom! У вас есть быстрый и простой способ для этих часто используемых операций, который не требует, чтобы вы думали или помнили, как работает CLI Inkscape. (Очевидно, вам нужно установить Inkscape, прежде чем это сработает)
Есть Image Magick, и в Inkscape также есть инструменты командной строки.
Inkscape делает это:
PDF:
inkscape -A a.pdf a.svg
PNG:
inkscape -e a.png a.svg
Нашел в man inkscape
и как использовать Inkscape в режиме командной строки
как я знаю, есть способ управлять Inkscape через cmd - я уже использовал нечто подобное для пакетного экспорта миниатюр PNG из моей огромной коллекции SVG. Поскольку Inkscape также поддерживает экспорт PDF через Cairo, также должна быть возможность экспортировать PDF. Я бы спросил на каком-нибудь форуме Inkscape. :-)