我在python中生成SVG图像(纯,没有外部库).在我正确放置它之前,我想知道文本元素的大小.有什么好主意如何制作它?我检查了pysvg库,但我没有看到像getTextSize()
这可能非常复杂。首先,您必须熟悉SVG 规范的文本章节。假设您想要获取普通text
元素而不是textpath
元素的宽度,至少您必须:
xml:space
以及writing-mode
属性(也可以是从上到下,而不仅仅是从左到右和从右到左)。一个可能的解决方案是使用pango库。您可以在py-gtk中找到它的 python 绑定。不幸的是,除了一些示例之外,Python 绑定的文档非常稀缺。但它会处理字体加载和确定Layout
.
另一种方法是研究浏览器中的 SVG 渲染器。但例如 Firefox 对 SVG 文本的支持是有限的。
研究TeX如何做到这一点也很有启发性,尤其是盒子(用于字母)和粘合(用于间距)的概念(pdf) 。