首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python svgwrite库获取组元素的宽度

使用python svgwrite库获取组元素的宽度
EN

Stack Overflow用户
提问于 2017-07-05 19:51:45
回答 1查看 968关注 0票数 0

我正在使用python库svgwrite来生成svg文件。我必须在矩形的中心位置放置两行文本。文本应该左对齐。矩形的宽度和高度是已知的。我在一个组容器中插入了两个文本行,并通过将它们的'text_anchor‘属性设置为'start',并将x位置设置为0来对齐它们。代码如下:

代码语言:javascript
复制
svg = svgwrite.Drawing(size=(210*mm, 297*mm), viewBox=('0 0 210 297'))
rect_width = 80
rect_height = 25
rect = svg.rect(insert=(0, 0), size=(rect_width, rect_height), fill='none', stroke='red', stroke_width=1)
font_size = 6 #in mm
style = "font-family:Arial; font-size:%i" % (font_size)
text_1 = svg.text('Line 1', insert=(0,0), style=style, text_anchor='start', dominant_baseline='hanging')
text_2 = svg.text('Longer Line 2', insert=(0, font_size), style=style, text_anchor='start', dominant_baseline='hanging')
text_group = svg.g()
text_group.add(text_1)
text_group.add(text_2)
x_pos = rect_width/2
y_pos = rect_height/2-font_size
text_group.translate(x_pos, y_pos)
svg.add(rect)
svg.add(text_group)

输出如下所示:See generated SVG

看起来'text_group‘的垂直位置还可以(居中)。但是水平位置应该更靠左。如果我能得到'text_group‘的宽度,并修改’x_pos‘,这是可以实现的:

代码语言:javascript
复制
x_pos = rect_width/2 - text_group_width/2

我在svgwrite中找不到任何方法来获取文本组的宽度。是否有任何方法来获得宽度,或者是否有任何替代解决方案来解决此问题?

EN

回答 1

Stack Overflow用户

发布于 2019-12-16 12:26:29

我发现了这个

svg.text(style="text-anchor:middle")

对于居中对齐文本非常有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44925458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档