我正在编写一些基本脚本,以便使用python的svgwrite创建基本图表。我已经成功地使用其他项目创建了组,例如圆、路径和线。但是,在将几个文本元素添加到一个组中时,当我使用Inkscape打开svg图形时,这些元素不能正确地显示在一个组中。文本显示得很好,但没有分组。
这是我的代码片段:
# Create group for constellation names
const_names = dwg.add(dwg.g(id='constellation_names',
stroke='none',
fill=config.constellation_name_font.color.get_hex_rgb(),
fill_opacity=config.constellation_name_font.color.get_float_alpha(),
font_size=config.constellation_name_font.size*pt,
font_family=config.constellation_name_font.font_family))
log.warning("Constellation name groups are not working!")
if config.constellation_name_enable:
w, h = constellation.get_mean_position()
# Add every text item into the group
const_names.add(dwg.text(constellation.name,
insert=(w*pt, h*pt),
)
)发布于 2020-07-17 01:27:23
事实证明这是一个类型8的错误(我在代码上有一个bug )。这就是我的代码最终是什么样子的。所有文本实例都分组在一个组中。
def _add_constellation_names(dwg, constellations, config):
const_names = dwg.add(dwg.g(id='constellation_names',
stroke='none',
fill=config.constellation_name_font.color.get_hex_rgb(),
fill_opacity=config.constellation_name_font.color.get_float_alpha(),
font_size=config.constellation_name_font.size*pt,
font_family=config.constellation_name_font.font_family))
for constellation in constellations:
kwargs = {}
if constellation.custom_color != None:
kwargs["fill"] = constellation.custom_color.get_hex_rgb()
kwargs["fill_opacity"] = constellation.custom_color.get_float_alpha()
w, h = constellation.get_mean_position()
const_names.add(dwg.text(constellation.get_display_name(),
insert=(w*pt, h*pt),
text_anchor="middle",
**kwargs,
)
)https://stackoverflow.com/questions/62806287
复制相似问题