在Inkscape插件中加载和修改SVG
我现在正在用Python写一个Inkscape插件。在这个插件里,我想从插件文件夹加载一个模板(一个已经存在的svg文件),然后通过名字或键来访问这个模板里的某些对象。接着,我想改变这些对象的边框和/或填充颜色,并在上面添加一些文字。我该如何使用Inkscape的Python脚本接口来实现这些功能呢?我找到了一些例子(见下面),但它们都是针对已经打开的文档的。
- http://www.hoboes.com/Mimsy/hacks/write-inkscape-extension-create-multiple-duplicates/
- http://wiki.inkscape.org/wiki/index.php/Script_extensions
- http://ospublish.constantvzw.org/blog/tools/inkscape-plugins-in-python
- http://wiki.inkscape.org/wiki/index.php/Generating_objects_from_extensions
- http://wiki.inkscape.org/wiki/index.php/PythonEffectTutorial
1 个回答
0
你可以使用 lxml 吗?
t = etree.parse("path/test.xml")
接下来你可以选择:
- 直接操作
t
的属性——这可以在 Python 中完成,而不需要打开 Inkscape。你可以用t.write("filename")
将你的树保存下来。 - 使用
self.document.getroot().append(t)
将t
添加到当前打开的文档中。
另外,这虽然不是你问的内容,但可能会对你有帮助:一个 Inkscape 插件,可以让你在 Inkscape 内部写短的 Python 代码片段: http://www.smanohar.com/inkscape.php