El SVG 1.1 exportado por la herramienta draw.io es demasiado "moderno" para la correcta representación por Batik, Cairo, qiv, o incluso Firefox: parece que ninguno de ellos admite el elemento < foreignObject>. Sin embargo, WebKit lo procesa correctamente, así que para convertir SVG a imágenes de alta calidad, utilizo las herramientas "wkhtmlto ..." de http://wkhtmltopdf.org.
wkhtmltoimage
genera salida a la resolución de pantalla y su --zoom
cambia las líneas escamadas y el texto de forma diferente dando como resultado el recorte (aunque se abre el mismo SVG en Chrome y el zoom se realiza correctamente). Así que en vez estoy usando wkhtmltopdf
para generar un pdf intermedia y luego haciendo que una imagen de alta resolución con Ghostscript como:
wkhtmltopdf callbacks.svg callbacks.pdf
gs -sDEVICE=pnggray -sOutputFile=callbacks.png -dBATCH -dNOPAUSE -r900 callbacks.pdf
EDIT: una desventaja de ir a través de una descripción de página formato es que el archivo de imagen producida puede tener fronteras muy grandes. Puede experimentar con tamaños de papel y diseños para minimizar esto o simplemente cortarlos automáticamente, p. Ej. con ImageMagick:
convert callbacks.png -trim callbacks.png
EDIT: Firefox 49.0.2 (noviembre de 2016) ahora hace que el SVG draw.io correctamente. No ha vuelto a probar Cairo o Batik. sample draw.io file
"bueno" es bastante subjetivo, le sugiero que actualice la pregunta indicando sus requisitos, qué funciones de svg necesita, cómo necesita usar la biblioteca, etc. –
¿Quiere decir un renderizador de pantalla, o un PDF/renderizador de bitmap? ¿Alguna preferencia de lenguaje de programación? – halfer
Sí, un renderizador de pantalla para crear imágenes ráster típicas a partir de una definición estándar de SVG. En cuanto a la preferencia de idioma, estoy usando Python para generar el SVG, pero no estoy vinculado a ningún idioma para la parte de SVG. – rubenafo