2014-09-03 14 views
3

J'écris actuellement un plugin Inkscape utilisant Python. Au sein de ce plugin, je voudrais charger un template (un svg existant) du dossier du plugin et accéder à certains objets dans ce template par nom ou par clé. Ensuite, je voudrais changer la bordure et/ou remplir la couleur de l'objet et y ajouter du texte. Comment ferais-je cela en utilisant l'interface de script python d'inkscape? J'ai trouvé quelques exemples (voir ci-dessous) sur la façon d'écrire un plugin pour inkscape, mais ils fonctionnent tous sur des documents déjà ouverts.Chargement et modification de svg dans le plugin Inkscape

  1. http://www.hoboes.com/Mimsy/hacks/write-inkscape-extension-create-multiple-duplicates/
  2. http://wiki.inkscape.org/wiki/index.php/Script_extensions
  3. http://ospublish.constantvzw.org/blog/tools/inkscape-plugins-in-python
  4. http://wiki.inkscape.org/wiki/index.php/Generating_objects_from_extensions
  5. http://wiki.inkscape.org/wiki/index.php/PythonEffectTutorial

Répondre

0

Peut-on utiliser lxml?

t = etree.parse("path/test.xml") 

Vous pouvez alors soit

  1. manipuler les propriétés de t directement - cela peut être fait à partir de Python sans avoir à ouvrir Inkscape. Votre arbre pourrait être sauvé avec t.write("filename")
  2. ajouter t au document ouvert utilise self.document.getroot().append(t)

En outre, ce n'est pas ce que vous avez demandé, mais il peut venir utile: un plugin Inkscape qui vous permet d'écrire court Des extraits de python depuis Inkscape: http://www.smanohar.com/inkscape.php

Questions connexes