考虑以下最小工作示例:
from pysvg.text import *
from pysvg.builders import *
doc = svg()
doc.addElement(text("hello\nWorld", 150, 50))
doc.save('HelloWorld2.svg')
当生成的 svg以图形方式查看,换行符已转换为单个空格,因为 XML 不尊重换行符。
<?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 中显示换行符?
SVG 规范第 10.1 节 http://www.w3.org/TR/SVG11/text.html#Introduction给出三个选项:
每个“文本”元素都会导致呈现单个文本字符串。静止无功发生器
不执行自动换行或自动换行。为了实现
多行文本的效果,使用以下方法之一:
- 作者或创作包需要预先计算换行符并使用多个“文本”元素(每一行文本一个)。
- 作者或创作包需要预先计算换行符,并使用单个“text”元素和一个或多个“tspan”子元素
具有适当属性值“x”、“y”、“dx”和
‘dy’为那些新开始的角色设置新的开始位置
线。 (这种方法允许用户跨多行选择文本
文本 - 请参阅文本选择和剪贴板操作。)
- 表达要在另一个 XML 命名空间中呈现的文本,例如嵌入在“foreignObject”元素中的 XHTML。 (笔记:
这种方法的确切语义并未完全定义在
这次。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)