在Inkscape插件中加载和修改SVG

3 投票
1 回答
1970 浏览
提问于 2025-04-19 14:20

我现在正在用Python写一个Inkscape插件。在这个插件里,我想从插件文件夹加载一个模板(一个已经存在的svg文件),然后通过名字或键来访问这个模板里的某些对象。接着,我想改变这些对象的边框和/或填充颜色,并在上面添加一些文字。我该如何使用Inkscape的Python脚本接口来实现这些功能呢?我找到了一些例子(见下面),但它们都是针对已经打开的文档的。

  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

你可以使用 lxml 吗?

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

接下来你可以选择:

  1. 直接操作 t 的属性——这可以在 Python 中完成,而不需要打开 Inkscape。你可以用 t.write("filename") 将你的树保存下来。
  2. 使用 self.document.getroot().append(t)t 添加到当前打开的文档中。

另外,这虽然不是你问的内容,但可能会对你有帮助:一个 Inkscape 插件,可以让你在 Inkscape 内部写短的 Python 代码片段: http://www.smanohar.com/inkscape.php

撰写回答