#!/usr/bin/python # -*- coding: utf-8 -*- # # Javier Aguirre # 23/06/09 # Licenciado bajo GPLv3 # import os, re, sys, string, os.path def main(): '''Tomando un archivo svg plantilla y un archivo de cadenas de texto, reemplaza las etiquetas #desc y #name del primero secuencialmente por las cadenas en el segundo y genera un fichero svg y png por cada par de cadenas''' #Por si no estan bien introducidos los parametros if (len(sys.argv) < 3): print 'Use: ./scriptsvg infile.svg data.txt' sys.exit() #Abrimos el archivo svg file = open(sys.argv[1], 'r') string = file.read() file.close() #Abrimos el archivo de cadenas de texto que van # a reemplazar a las etiquetas #desc y #name datafile = open(sys.argv[2], 'r') data = datafile.read().split('\n') datafile.close() #Tomamos el directorio del archivo svg inicial para # generar ahi la salida de nuestro programa dir = os.path.dirname(sys.argv[1]) #Etiqueta dentro del archivo de texto donde comienzan los nombres name_index = data.index("%name") i = 1 cont = 0 aux = '' while i < len(data)/2: #Reemplazamos en la plantilla svg el #desc por la descripcion aux = string.replace('#desc', data[i], 1) print data[i] #Reemplazamos en la plantilla svg el #name por el nombre aux = aux.replace('#name', data[name_index+i], 1) print data[name_index+i] #Escribir en la salida, genera el fichero salida svg con el par (name, desc) outname = os.path.join(dir, "outff%d" % cont) outfile = open(outname+'.svg', 'w') outfile.write(aux) outfile.close() cont += 1 i = i +1 #Exportamos en png por inkscape, hay que meterlo en el bucle os.system('inkscape %s --export-png=%s -w1024 -h576' % (outname+'.svg', outname+'.png')) if __name__ == '__main__': main()