在Inkscape插件中加载和修改svg

时间:2014-09-03 13:11:56

标签: python plugins inkscape

我目前正在使用Python编写Inkscape插件。在这个插件中,我想从插件文件夹中加载一个模板(一个现有的svg),并通过名称或密钥访问该模板中的一些对象。然后我想更改对象的边框和/或填充颜色,并添加一些文本。我如何使用inkscape的python脚本界面?我找到了一些关于如何为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

1 个答案:

答案 0 :(得分:0)

您可以使用lxml吗?

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

然后你可以

  1. 直接操作t的属性 - 这可以通过python完成,而无需实际打开inkscape。您的树可以使用t.write("filename")
  2. 保存
  3. 使用t
  4. self.document.getroot().append(t)添加到当前打开的文档中

    此外,这不是你要求的,但可能会有用:一个inkscape插件,允许你从Inkscape中编写短的python片段:http://www.smanohar.com/inkscape.php