¿Cómo puedo imprimir un SVG, ya escalado a tamaño a4, desde la línea de comando? Intenté usar lpr
, pero en su lugar, la impresora simplemente imprimió el XML real del archivo, que no es lo que quería.
¿Cómo puedo imprimir un SVG, ya escalado a tamaño a4, desde la línea de comando? Intenté usar lpr
, pero en su lugar, la impresora simplemente imprimió el XML real del archivo, que no es lo que quería.
Respuestas:
Inkscape puede convertir entre varios formatos de gráficos vectoriales, incluido SVG a PDF. Aunque normalmente es una aplicación GUI, puede ejecutarse en modo por lotes sin un servidor X disponible.
inkscape --without-gui --export-pdf=foo.pdf foo.svg
lpr foo.pdf
O si quieres imprimir directamente:
inkscape --without-gui --export-pdf=/dev/stdout foo.svg | lpr
Otra posibilidad es la biblioteca Apache Batik . Sin embargo, aunque hay una herramienta de línea de comandos basada en esa biblioteca, Fop , no parece tener una forma de usar la entrada SVG, por lo que tendría que escribir un poco de código de pegamento en Java.
Los archivos SVG, como notó, son solo texto xml. Volcar esos datos directamente en la impresora no le dará mucho dinero. Lo que necesita es un programa que pueda RENDER esos datos. Dice que el archivo ya está escalado a tamaño A4, que es solo un espacio de coordenadas para los datos vectoriales escalables. No se procesa.
Sin embargo, no se desespere! Hay muchos programas que pueden procesar los datos desde la línea de comandos y algunos incluso pueden procesar e imprimir todo en una sola vez. Debe buscar indicadores de línea de comandos para algunos programas más pesados con los que normalmente esperaría obtener una GUI.
Por ejemplo, sé que puede usar LibreOffice en la línea de comando para abrir e imprimir un archivo o convertirlo a otro formato. Hay una práctica utilidad de línea de comandos llamada unoconv que facilita mucho el proceso de conversión al simplificar todas las banderas que tendría que enviar.
El Gimp también tiene algunas banderas de línea de comando para abrir, convertir, guardar e incluso imprimir. Algunos de los viejos recursos como ImageMagick también pueden convertir archivos SVG a imágenes renderizadas en un tamaño determinado. Espero que otras aplicaciones como Inkscape también puedan hacer esto.
Una vez que tenga una imagen, debería ser fácil imprimir desde la línea de comandos. Si hace esto a menudo, ¡podría escribir un pequeño script de dos líneas para convertir e imprimir!