背景
我有一堆包含rect
、path
等元素的svg
文档,需要将其绘制成可下载的PNG图像。为此,我了解到有两种方法:要么将页面的HTML结构绘制到canvas
上,然后从那里导出;要么直接将SVG及其内容渲染到canvas
上。
假设
第一个假设是使用html2canvas渲染HTML结构,但发现由于安全问题,根本无法渲染SVG。第二个假设是使用canvg将SVG渲染到canvas上,但发现只能呈现一个SVG元素,而且只呈现第一个。
结果
为了证明第一个假设的错误,可以在禁用JavaScript的情况下,输入http://www.w3schools.com/svg/tryit.asp?filename=trysvg_rect
访问此URL。为了证明第二个假设的错误,我有一个可供尝试的示例。
问题
我想明确一下,我之所以有多个svg
是为了将它们放在响应式网格系统中,并通过长宽比进行调整大小。没有更多的话,我问一个问题:如何将多个svg
元素渲染到canvas
上?如果这个问题的答案是“不可能”,那么我的下一个问题就是:我应该只呈现一个svg
,并用另一种方式处理响应性吗?