outil de ligne de commande linux gratuit pour convertir SVG en PDF et / ou un format bitmap couramment utilisé?

17

Existe-t-il un outil de ligne de commande Linux gratuit pour convertir SVG en PDF et / ou un format bitmap couramment utilisé (par exemple PNG)?


la source
2
mogrify -format pdf -- *.svg
Yrogirg

Réponses:

25

Imagemagick est génial lorsque la sortie tramée (pixellisée) est ce que vous voulez (ou est au moins acceptable), mais c'est un mauvais choix sinon, car elle incorpore efficacement dans le pdf une version tramée de tout ce que vous essayez de convertir. L'intérêt de svg / pdf est qu'il peut être vectorisé, donc de plus petite taille, tout en restant lisse à n'importe quelle résolution.

Donc, je recommanderais certainement d'utiliser Inkscape ou CarioSVG . Ce dernier dispose de plusieurs utilitaires de ligne de commande précisément à cette fin ( svg2pdf, svg2pset svg2png). Le seul problème est qu'il s'agit essentiellement d'un œuf de python, donc si vous n'avez pas d'environnement python configuré et que vous n'êtes pas assez averti (ou que vous ne vous en souciez pas assez) pour en configurer un, cette option est non aller. Je me suis essayé, mais j'ai eu des problèmes pour configurer le nécessaire libcairo(pas que j'ai essayé trop fort).

Inkscape est génial, mais le cli est un peu maladroit si vous voulez juste une petite commande rapide pour faire tout le travail pour vous. J'ai mis en place quelques petits scripts pour prendre soin de tout cela pour moi:

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

Insérez le premier ~/bin/svg2pdfet le dernier ~/bin/svg2png, exécutez- chmod +xles tous les deux pour les rendre exécutables, et boum! Vous disposez d'un raccourci rapide et facile pour ces opérations souvent recherchées qui ne vous oblige pas à penser ou à vous rappeler comment fonctionne la CLI d'Inkscape. (De toute évidence, vous devez installer Inkscape avant que cela fonctionne)

métasoarous
la source
J'ai fait un seul test de performance rapide avec imagemagick et inkscape avec génération de dix fichiers PDF et imagemagick est 5,77 fois plus rapide. time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;réel 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;réel 0m0.381s
6
Cela peut être plus rapide, mais vous perdez la nature vectorielle du graphique, il est donc probablement 10 fois plus grand (bien que j'aimerais que vous me corrigiez si je me trompe). La raison pour laquelle cela prend plus de temps est qu'il effectue de réelles manipulations vectorielles, ce qui est beaucoup plus complexe que la pixellisation (ce qui équivaut essentiellement au rendu).
metasoarous
7

Il y a Image Magick et Inkscape a également des outils en ligne de commande.

Erika
la source
3
convertgagne de loin. Il est même capable de convertir vers et à partir de formats ésotériques dont vous ne saviez même pas l'existence, et de leur appliquer plus d'effets que vous n'en aurez jamais besoin.
new123456
3
Juste pour clarifier pour les lecteurs non familiers, convertest un outil en ligne de commande pour ImageMagick.
Erika
2
et une autre précision: si vous utilisez la conversion, vous passerez du vecteur au raster et perdrez la possibilité de redimensionner l'image. dans mon livre, c'est inkscape qui gagne. cela dépend juste de ce dont vous avez besoin.
nsheff
0

comme je le sais, il existe un moyen de faire fonctionner Inkscape via cmd - j'ai déjà utilisé quelque chose de similaire pour les vignettes PNG d'exportation par lots de mon énorme collection SVG. Comme Inkscape prend également en charge l'exportation PDF via Cairo, il devrait également être possible d'exporter PDF. Je demanderais sur un forum Inkscape. :-)

Juhele
la source