首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Svgwrite和字体样式/大小

Python Svgwrite和字体样式/大小
EN

Stack Overflow用户
提问于 2013-06-16 03:20:12
回答 3查看 9.6K关注 0票数 7

我正在尝试制作一个连接到网络刮刀的SVG文件。

如何使用svgwrite更改字体和文本大小?我知道我必须定义一个CSS样式,并以某种方式将其连接到文本对象。但是这是如何实现的呢?

以下是我到目前为止拥有的代码

代码语言:javascript
复制
import svgwrite

svg_document = svgwrite.Drawing(filename = "test-svgwrite3.svg",
                            size = ("1200px", "800px"))
#This is the line I'm stuck at
#svg_document.add(svg_document.style('style="font-family: Arial; font-size  : 34;'))

svg_document.add(svg_document.rect(insert = (900, 800),
                                   size = ("200px", "100px"),
                                   stroke_width = "1",
                                   stroke = "black",
                                   fill = "rgb(255,255,0)"))

svg_document.add(svg_document.text("Reported Crimes in Sweden",
                                   insert = (410, 50),
                                   fill = "rgb(255,255,0)",

                                  #This is the connection to the first line that I'm stuck at
                                  #style = 'style="font-family: Arial; font-size  : 104;'))

print(svg_document.tostring())

svg_document.save()
EN

回答 3

Stack Overflow用户

发布于 2013-06-18 23:01:25

SvgWrite的制造者曼弗雷德·莫伊茨给我寄来了一份更精炼的答复;

这必须由CSS来完成,使用'class_‘或'style’关键字参数来设置文本属性:

代码语言:javascript
复制
dwg = svgwrite.Drawing()

使用'style‘关键字arg:

代码语言:javascript
复制
g = dwg.g(style="font-size:30;font-family:Comic Sans MS, Arial;font-weight:bold;font-
style:oblique;stroke:black;stroke-width:1;fill:none")

g.add(dwg.text("your text", insert=(10,30))) # settings are valid for all text added to 'g'
dwg.add(g)

使用'class_‘关键字arg:

创建包含以下内容的CSS文件:

代码语言:javascript
复制
.myclass {
font-size:30;
font-family:Comic Sans MS, Arial;
font-weight:bold;
font-style:oblique;
stroke:black;
stroke-width:1;
fill:none;
}

请参阅CSS参考:http://www.w3schools.com/cssref/default.asp

代码语言:javascript
复制
dwg.add_stylesheet(filename, title="sometext") # same rules as for html files

g = dwg.g(class_="myclass")
g.add(dwg.text("your text", insert=(10,30))) # settings are valid for all text added to 'g'
dwg.add(g)

使用'class_‘和' style’关键字参数,你可以设置每个图形对象的样式,并且可以在容器对象中使用它们。

票数 11
EN

Stack Overflow用户

发布于 2013-06-18 05:05:34

答案很简单;

代码语言:javascript
复制
svg_document.add(svg_document.text("Reported Crimes in Sweden",
                                   insert = (410, 50),
                                   fill = "rgb(255,255,0)",
                                   style = "font-size:10px; font-family:Arial"))
票数 4
EN

Stack Overflow用户

发布于 2015-08-30 22:54:06

像这样设置font-size:

代码语言:javascript
复制
dwg = svgwrite.Drawing('test.svg', profile='tiny')
dwg.add(dwg.text('Test',insert = (30, 55),font_size="10px",fill='black'))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17127083

复制
相关文章

相似问题

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