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)?

linux  svg 

2
mogrify -format pdf -- *.svg
Yrogirg

Respuestas:


25

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/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/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).
metasoarous

7

Hay Image Magick , e Inkscape también tiene herramientas de línea de comandos.


3
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.
nsheff


0

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. :-)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.