{{tag>Brouillon}} = Diagramme sous GNU/Linux Voir : * Diagrams.net (Aka Draw.IO) * http://blog.nicolargo.com/2008/04/dia-alternative-a-visio-sous-mac-os-x.html * http://www.paperblog.fr/654264/dia-alternative-a-visio-sous-mac-os-x * [[utiliser-git-pour-vos-logos-en-svg]] * PenPlot (SVG) - UX - alternative à Figma et Sketch. * https://cryptpad.fr/diagram/ Logos libres en SVG : * https://www.svgrepo.com/ Voir aussi : FIXME * Diagramme en Code avec PlantUML http://www.softia-systems.net/contribs/dia_split_svg.py # # Script realise par THOMAS DUBOIS pour SOFTIA SYSTEMS # BSD LICENCE # Merci d'envoyer un mail a tdubois@softia-systems.net # si vous utilisez, transmettez, ou reactualiser le script # (juste pour un suivi du travail :)) # Finalise le 28/08/2007 # # Ce script ne prends pas d'argument. # Il creera dans le repertoire courant un repertoire svg, et shape # Le repertoire svg contiendra les .svg de chaque objet # Le repertoire shape contiendra les .shape correspondant au SVG ainsi # qu'un PNG pour la preview # Un fichier Yourshape.sheet sera creer. # Le fichier .sheet doit etre modifier afin de changer # le nom de la feuille apparaissant dans dia # Le fichier shape est a copier dans votre ~/.dia/shape/Votreshape # Le fichier Yourshape.sheet est a copier dans le repertoire ~/dia/sheets/ # sous le nom Votreshape.sheet # Debut du script from xml.dom import minidom # Fichier SVG d'entree a parser xmldoc = minidom.parse('/path/to/file.svg') # probleme de locale, pas trouve d'autre solution .... # si quelqu'un a qqchose a proposer import locale, sys reload(sys) loc = locale.getdefaultlocale() if loc[1]: encoding = loc[1] # une version Non-Unicode retournera AttributeError... if encoding: sys.setdefaultencoding(encoding) import os import re import popen2 # recuperation des groups d'element, ici les objets reflist = xmldoc.getElementsByTagName('g') shapehead = """ """ shapetail = """ """ svghead = """ """ svgtail = "\n" # Creation du fichier sheet sheetfile = open("YourSheet.sheet", "w") sheetfile.write(""" Sample A collection of sample shapes. """) # Creation de repertoires pour stocker les fichiers os.mkdir("svg") os.mkdir("shape") i = 0 for block in reflist: #ouverture du fichier svg de l'objet courant et ecriture des entetes svgfile = open("svg/" + str(i) + ".svg", 'w') svgfile.write(svghead) svgfile.write("%i\n"%(i)) shapefile = open("shape/" + str(i) + ".shape", 'w') shapefile.write(shapehead) shapefile.write("%s\n"%(i)) shapefile.write("%s.png\n\n"%(i)) # Regexp pour enlever nombre de classes qui sont incompatible avec dia p = re.compile('sodipodi:[a-z0-9\-]+=".*?\"') chaine = p.sub('', block.toxml()) svgfile.write(chaine) chaine = chaine.replace("\n"%(i)) sheetfile.write("%s\n"%(i)) sheetfile.write("\n") # conversion des .svg de chaque objet svg en png popen2.popen3("/usr/bin/inkscape svg/%s.svg -e shape/%s.png -d 90 -z -D"%(i,i)) shapefile.close() svgfile.write(svgtail) svgfile.close() i += 1 sheetfile.write(""" """) sheetfile.close()