17

Существует ли бесплатный инструмент командной строки linux для преобразования SVG в PDF и / или какой-нибудь широко используемый растровый формат (например, PNG)?

4 ответа4

24

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, прежде чем это сработает)

7

Есть Image Magick, и в Inkscape также есть инструменты командной строки.

5

Inkscape делает это:

PDF:

inkscape -A a.pdf a.svg

PNG:

inkscape -e a.png a.svg

Нашел в man inkscape и как использовать Inkscape в режиме командной строки

0

как я знаю, есть способ управлять Inkscape через cmd - я уже использовал нечто подобное для пакетного экспорта миниатюр PNG из моей огромной коллекции SVG. Поскольку Inkscape также поддерживает экспорт PDF через Cairo, также должна быть возможность экспортировать PDF. Я бы спросил на каком-нибудь форуме Inkscape. :-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .