首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在pysvg中添加新行?

有没有办法在pysvg中添加新行?
EN

Stack Overflow用户
提问于 2014-05-07 08:21:26
回答 1查看 646关注 0票数 5

考虑以下最低工作示例:

代码语言:javascript
复制
from pysvg.text import *
from pysvg.builders import *

doc = svg()
doc.addElement(text("hello\nWorld", 150, 50))
doc.save('HelloWorld2.svg')

当以图形方式查看生成的svg 时,换行符已经转换为单个空间,因为XML不尊重换行符。

代码语言:javascript
复制
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"  >
<text font-size="12" y="50" x="150"  >
hello
World</text>
</svg>

如何在SVG?中显示换行符

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-07 08:39:34

SVG规范第10.1节提供了三个选项:

每个“text”元素导致呈现单个文本字符串。SVG不执行自动换行或字包装。要实现多行文本的效果,请使用以下方法之一:

  • 作者或创作包需要预先计算换行符,并使用多个“text”元素(每一行文本一个)。
  • 作者或创作包需要预先计算换行符,并使用一个或多个带有属性“x”、“y”、“dx”和“dy”属性值的“tspan”子元素的单个“text”元素为那些开始新行的字符设置新的起始位置。(这种方法允许用户跨多行文本进行文本选择--参见文本选择和剪贴板操作。)
  • 表示要在另一个XML命名空间中呈现的文本,例如嵌入在“foreignObject”元素中的XHTML内联。(注意:目前还没有完全定义这种方法的确切语义。)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23512469

复制
相关文章

相似问题

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