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 efectivamente incrusta en el pdf una versión rasterizada de lo que sea que esté tratando de convertir. El punto central de svg/pdf es que puede ser vectorizado, por lo tanto, de menor tamaño, sin dejar de ser uniforme en cualquier resolución.
Entonces, definitivamente recomendaría usar Inkscape o CarioSVG. Este último dispone de varias utilidades de línea de comandos precisamente para este fin (svg2pdf
, svg2ps
y svg2png
). El único inconveniente es que básicamente es solo un huevo de Python, por lo que si no tiene un entorno de Python configurado y no es lo suficientemente inteligente (o no le importa lo suficiente) para configurar uno, entonces esa opción es un no Vamos. Lo intenté yo mismo, pero tuve problemas para configurar el libcairo
requerido (No es que lo haya intentado también duro).
Inkscape es increíble, pero la cli es un poco torpe si solo desea un pequeño comando rápido para hacer todo el trabajo por usted. Reuní un par de pequeños guiones para encargarse de todo esto por mí:
svg2pdf
#!/bin/bash
for i in [email protected]; do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bash
for i in [email protected]; do
inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done
Pon el primero en ~/bin/svg2pdf
y el último en ~/bin/svg2png
, ejecuta chmod +x
en ambos para hacerlos ejecutables, y ¡bum! Tiene un atajo rápido y fácil para estas operaciones a menudo buscadas que no requieren que piense o recuerde cómo funciona la CLI de Inkscape. (Obviamente, necesita Inkscape instalado antes de que esto funcione)
Está Image Magick e Inkscape también tiene herramientas de línea de comandos.
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