有没有办法使用addSVG为jsPDF使用模式/纹理?

时间:2015-10-02 19:36:50

标签: javascript d3.js svg jspdf

我有使用D3库生成的SVG图像,它们看起来很棒。问题是,addSVG无法使用它们。我确认经常' SVG工作,我可以做基本的形状,笔画,颜色填充。有没有办法让模式在那里?

理想情况下,我可以扩展addSVG来处理dataURIs,还是构建一个带有模式填充的CSS?

如果这不起作用,那么可能是一种解析SVG XML字符串的方法吗?

如果不是其中任何一种,有没有办法在常规'中创建一些模式?我可以用的SVG代替吗?也许现有的图书馆比D3更简单?我实际上并不需要太多。

编辑:值得一提的是,Node.js不是一个选项,外部服务器资源也不是一个选项。我将基于内部服务器的SVG保存到PNG转换器到绝对的最后一个回退。同样典型的客户端SVG到PNG转换也是不行的,我必须支持IE11,我无法解决安全性错误canvas.toDataURL抛出(我不认为'可能)。

编辑:addSVG非常基本,不支持模式和其他花哨的位。我能够使用canvg和addImage作为解决方法。答案中的链接文章不适用于IE11。

1 个答案:

答案 0 :(得分:0)

查看<path>的代码我发现它只对SVG提供了非常基本的支持。它只支持{{1}}元素,它们必须位于SVG的顶层。另外,它不支持改变路径颜色,它只允许“c”#c;和&#39; l&#39;路径命令。

所以对你的问题的简单回答是&#34;否&#34;。 :/

假设您不想编写自己的SVG转换器(并且没有替代插件),那么您可能不得不辞职,将SVG转换为位图并插入。

How to converted SVG Files into PDF in JSPDF using javascript