Estoy compilando un conjunto de archivos SVG que incluyen una cantidad desafortunada de valores codificados (deben imprimir con algunos elementos dimensionados en mm, mientras que otros deben escalarse como un porcentaje, y la mayoría de los valores definido en relación con el otro). En lugar de manejar esos números a mano (no lo permita el cielo, quiero cambiar algo), pensé que podría usar mi pitón de martillo de confianza para la tarea.Crear archivos SVG usando Python
SVG 1.1 no es compatible de forma nativa con ningún tipo de esquema variable que me permita hacer lo que quiero, y no estoy interesado en introducir javascript o especificaciones de borrador w3c inestables en la mezcla. Una solución obvia es utilizar el formato de cadenas para leer, analizar y reemplazar variables en mi archivo SVG. Esto parece una mala idea para un documento más grande, pero tiene la ventaja de ser simple y portátil.
Mi segundo intento fue investigar las bibliotecas disponibles de python-> svg. Desafortunadamente, parece que las pocas opciones tienden a ser demasiado nuevas (pySVG aún tiene una interfaz inestable), son demasiado antiguas (no se han actualizado desde 2005) o están abandonadas. No he mirado de cerca, pero mi sensación es que las aplicaciones de gráficos no son lo suficientemente flexibles como para generar mis documentos.
La tercera opción que encontré fue la de usar alguna otra herramienta de dibujo (cairo, por ejemplo) que puede ser convencida para sacar svg. Esto tiene la (potencial) desventaja de no admitir de forma nativa los tamaños de elementos absolutos que son tan importantes para mí, pero podría incluir la capacidad de generar PDF, lo que sería conveniente.
Ya he hecho la búsqueda de Google, así que estoy buscando información de personas que han usado cualquiera de los métodos mencionados, o que quizás conozcan algún otro enfoque. La estabilidad a largo plazo de cualquier solución que se elija es importante para mí (fue la razón original de la codificación manual en lugar de simplemente usar el ilustrador).
En este punto, me estoy inclinando por la primera solución, por lo que las recomendaciones sobre las mejores prácticas para usar python para analizar y reemplazar variables en archivos XML son bienvenidas.
Ese es un buen punto. XSLT todavía me hace estremecer. Y para documentos SVG, Genshi debería permitirme desarrollar con valores de prueba, y luego reemplazarlos según sea conveniente. Sería capaz de mantener las plantillas abiertas en mi navegador mientras trabajo. –