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?
17
¿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)?
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, svg2psy 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/bashfor i in $@;do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bashfor i in $@;do
inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done
Coloque el primero ~/bin/svg2pdfy el último ~/bin/svg2png, ejecute chmod +xen 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)
Hice solo una prueba rápida de rendimiento con imagemagick y inkscape con la generación de diez archivos PDF e imagemagick es 5.77 veces más rápido. 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
66
Puede ser más rápido, pero está perdiendo la naturaleza vectorial del gráfico, por lo que probablemente también sea 10 veces más grande (aunque me encantaría que me corrigiera si me equivoco). La razón por la que lleva más tiempo es porque está haciendo manipulaciones de vectores reales, lo cual es mucho más complejo que rasterizar (que es básicamente equivalente a la representación).
convertgana 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á.
nuevo123456
3
Solo para aclarar a los lectores desconocidos, convertes una herramienta de línea de comandos para ImageMagick.
Erika
2
y una aclaración más: si usa convertir, cambiará de vector a ráster y perderá la capacidad de escalar la imagen. En mi libro, es Inkscape el que gana. solo depende de lo que necesites.
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
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
ysvg2png
). 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 requeridolibcairo
(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
svg2png
Coloque el primero
~/bin/svg2pdf
y el último~/bin/svg2png
, ejecutechmod +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)fuente
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
real 0m2.192stime for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
real 0m0.381sHay Image Magick , e Inkscape también tiene herramientas de línea de comandos.
fuente
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:
a PNG:
Encontrado en
man inkscape
y cómo usar Inkscape en modo de línea de comandosfuente
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. :-)
fuente