Existe uma ferramenta de linha de comando do linux gratuita para converter SVG para PDF e / ou algum formato de bitmap comumente usado (por exemplo, PNG)?
Existe uma ferramenta de linha de comando do linux gratuita para converter SVG para PDF e / ou algum formato de bitmap comumente usado (por exemplo, PNG)?
Respostas:
O Imagemagick é ótimo quando a saída rasterizada (pixelizada) é o que você deseja (ou é pelo menos aceitável), mas é uma má escolha, pois, de fato, incorpora no pdf uma versão rasterizada do que você está tentando converter. O ponto principal do svg / pdf é que ele pode ser vetorizado, portanto menor em tamanho, mantendo-se suave em qualquer resolução.
Portanto, eu recomendaria definitivamente o Inkscape ou o CarioSVG . Este último possui vários utilitários de linha de comando precisamente para esse fim ( svg2pdf
, svg2ps
e svg2png
). O único problema é que é basicamente apenas um ovo python, portanto, se você não tem um ambiente python configurado e não é experiente o suficiente (ou não se importa o suficiente) para configurar um, então essa opção é um não ir. Eu tentei a mim mesmo, mas tive problemas para configurar o necessário libcairo
(não que eu tentei muito ).
O Inkscape é incrível, mas o CLI é um pouco desajeitado se você quiser apenas um pequeno comando rápido para fazer todo o trabalho para você. Eu montei alguns pequenos scripts para cuidar de tudo isso para mim:
svg2pdf
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done
Coloque o primeiro ~/bin/svg2pdf
e o segundo ~/bin/svg2png
, execute os chmod +x
dois para torná-los executáveis e bum! Você tem um atalho rápido e fácil para essas operações frequentemente desejadas que não exigem que você pense ou se lembre de como a CLI do Inkscape funciona. (Obviamente, você precisa do Inkscape instalado antes que isso funcione)
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
real 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
real 0m0.381s
Existe o Image Magick , e o Inkscape também possui ferramentas de linha de comando.
convert
vitórias de longe. É até capaz de converter de e para formatos esotéricos que você nem sabia que existiam e aplicar mais efeitos a eles do que você precisará.
convert
é uma ferramenta de linha de comando para o ImageMagick.
Inkscape
Para PDF:
inkscape -A a.pdf a.svg
para PNG:
inkscape -e a.png a.svg
Encontrado em man inkscape
e como usar o Inkscape no modo de linha de comando
como eu sei, existe uma maneira de operar o Inkscape via cmd - eu já usei algo semelhante para miniaturas PNG de exportação em lote da minha enorme coleção SVG. Como o Inkscape também suporta exportação de PDF via Cairo, também deve ser possível exportar PDF. Eu perguntaria em algum fórum do Inkscape. :-)
mogrify -format pdf -- *.svg