使用Python创建SVG

我正在构建一组包含不幸数量的硬编码值的SVG文件(它们必须打印一些大小为mm的元素,而其他元素必须按百分比缩放,并且大多数值是相对于彼此定义的).而不是手工管理这些数字(天堂禁止我想改变一些东西),我想我可能会用我可信赖的锤子Python来完成任务.

SVG 1.1本身并不支持任何可以让我按照自己的意愿行事的变量方案,而且我不想将javascript或不稳定的w3c草案规范引入混合中.一个显而易见的解决方案是使用字符串格式来读取,解析和替换SVG文件中的变量.对于更大的文档来说,这似乎是一个坏主意,但具有简单和便携的优点.

我的第二个问题是调查可用的python-> svg库.不幸的是,似乎少数选项往往太新(pySVG仍然有一个不稳定的界面),太旧(自2005年以来没有更新),或被放弃.我没有密切关注,但我的感觉是图表应用程序不够灵活,无法生成我的文档.

我遇到的第三个选项是使用一些其他绘图工具(例如cairo)可以说服推出svg.这具有(潜在)缺点,即不能原生地支持对我来说如此重要的绝对元素大小,但可能包括输出PDF的能力,这将是方便的.

我已经完成了谷歌搜索,所以我正在寻找那些使用过任何提到的方法或者可能知道其他方法的人的意见.选择任何解决方案的长期稳定性对我来说很重要(这是手动编码的原始原因,而不仅仅是使用插图画家).

在这一点上,我倾向于第一个解决方案,因此欢迎使用python来解析和替换XML文件中的变量的最佳实践建议.

最佳答案
基于标记的模板引擎(例如genshi)可能很有用.它允许您使用SVG工具完成大部分创作,并在模板中进行自定义.我绝对更喜欢XSLT.

相关文章

在这篇文章中,我们深入学习了XPath作为一种常见的网络爬虫技巧。XPath是一种用于定位和选择XML文档中特...
祝福大家龙年快乐!愿你们的生活像龙一样充满力量和勇气,愿你们在新的一年里,追逐梦想,勇往直前,不...
今天在爬虫实战中,除了正常爬取网页数据外,我们还添加了一个下载功能,主要任务是爬取小说并将其下载...
完美收官,本文是爬虫实战的最后一章了,所以尽管本文着重呈现爬虫实战,但其中有一大部分内容专注于数...
JSON是一种流行的数据传输格式,Python中有多种处理JSON的方式。官方的json库是最常用的,它提供了简单...
独立样本T检验适用于比较两组独立样本的均值差异,而配对T检验则适用于比较同一组样本在不同条件下的均...