小编uda*_*sha的帖子

使用 svgwrite for python 时如何确定文本宽度和高度?

我想提取文本对象(svgwrite.Drawing.Text)的像素大小,因为它在使用给定样式进行格式化后会出现在文件中。我的字体是固定宽度的(Courier New)。

我需要它的原因是我想将一个字符串打印到SVG文件,然后在结果文本上映射一些信息:例如我有一个字符串“ABCDEF”,外部智者告诉我应该标记“BCD”部分。然后我需要知道两个维度上的符号“A”和符号“BCD”覆盖了多少像素(单位?),然后绘制一个彩色矩形,或透明框架,或严格位于“BCD”部分下方的任何内容。

所以我有以下代码,我希望使用类似“ w = text1.width ”的东西来提取宽度,但它不能以这种方式工作。预先感谢您尝试回答我的问题。

import svgwrite
my_svg = svgwrite.Drawing(filename = "dasha.svg", size = ("800px", "600px"))
text_style = "font-size:%ipx; font-family:%s" % (12, "Courier New") 
text1 = my_svg.text("HELLO WORLD", insert=(0, 0), fill="black", style=text_style)
my_svg.add(text1)
my_svg.save()
Run Code Online (Sandbox Code Playgroud)

UPD1 [22.06.2014]:我目前使用的中间解决方案是在 Inkscape 中手动测量具有特定字体和大小的字母的高度和宽度。我尽力了,但我不确定这些值是否完美,现在我无法更改程序中的字体大小。

python svg

7
推荐指数
1
解决办法
6574
查看次数

标签 统计

python ×1

svg ×1