¿Existe una herramienta gratuita de línea de comandos de Linux para convertir SVG a PDF y / o algún formato de mapa de bits de uso común (por ejemplo, PNG)?
¿Existe una herramienta gratuita de línea de comandos de Linux para convertir SVG a PDF y / o algún formato de mapa de bits de uso común (por ejemplo, PNG)?
Respuestas:
Imagemagick es excelente cuando la salida rasterizada (pixelada) es lo que desea (o al menos es aceptable), pero de lo contrario es una mala elección, ya que integra de manera efectiva en el pdf una versión rasterizada de lo que está tratando de convertir. El objetivo de svg / pdf es que se puede vectorizar, por lo tanto, de menor tamaño, sin dejar de ser uniforme en cualquier resolución.
Por lo tanto, definitivamente recomendaría usar Inkscape o CarioSVG . Este último tiene varias utilidades de línea de comando precisamente para este propósito ( svg2pdf
, svg2ps
y svg2png
). El único inconveniente es que es básicamente un huevo de pitón, por lo que si no tienes un entorno de python configurado y no eres lo suficientemente inteligente (o no te importa lo suficiente) como para configurar uno, entonces esa opción es un no Vamos. Lo intenté yo mismo, pero tuve problemas para configurar lo requerido libcairo
(no es que lo haya intentado demasiado ).
Inkscape es increíble, pero el cli es un poco torpe si solo quieres un pequeño comando rápido para hacer todo el trabajo por ti. Reuní un par de pequeños guiones para encargarme de todo esto:
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 el primero ~/bin/svg2pdf
y el último ~/bin/svg2png
, ejecute chmod +x
en ambos para hacerlos ejecutables, y ¡auge! Tiene un acceso directo rápido y fácil para estas operaciones que a menudo se desean y que no requiere que piense o recuerde cómo funciona la CLI de Inkscape. (Obviamente, necesita instalar Inkscape antes de que esto 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
Hay Image Magick , e Inkscape también tiene herramientas de línea de comandos.
convert
gana de lejos. Incluso es capaz de convertir ay desde formatos esotéricos que ni siquiera sabía que existían, y aplicarles más efectos de los que necesitará.
convert
es una herramienta de línea de comandos para ImageMagick.
Inkscape
A PDF:
inkscape -A a.pdf a.svg
a PNG:
inkscape -e a.png a.svg
Encontrado en man inkscape
y cómo usar Inkscape en modo de línea de comandos
Como sé, hay una manera de operar Inkscape a través de cmd: ya utilicé algo similar para las miniaturas PNG de exportación por lotes de mi enorme colección SVG. Como Inkscape también admite la exportación de PDF a través de El Cairo, también debería ser posible exportar PDF. Preguntaría en algún foro de Inkscape. :-)
mogrify -format pdf -- *.svg