有没有办法使用 patterns/textures using addSVG for jsPDF?

Is there a way to use patterns/textures using addSVG for jsPDF?

我有使用 D3 库生成的 SVG 图像,它们看起来很棒。问题是,addSVG 不能使用它们。我验证了 'regular' SVG 工作,我可以做基本的形状、笔触、颜色填充。有没有办法在其中获取模式?

理想情况下,我可以扩展 addSVG 来处理 dataURI 或者构建一个带有模式填充的 CSS 吗?

如果这不起作用,那么也许有一种方法可以解析 SVG XML 字符串?

如果不是其中任何一个,有没有办法在 'regular' SVG 中创建一些我可以使用的模式?也许有一个比 D3 更简单的现有库?其实我不需要很多。

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

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

查看 addSVG() 的代码,我发现它只对 SVG 提供极其基本的支持。它仅支持 <path> 个元素,并且它们必须位于 SVG 的顶层。此外,它不支持更改路径颜色,它只允许 'c' 和 'l' 路径命令。

所以您的问题的简单答案是 "No"。 :/

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

How to converted SVG Files into PDF in JSPDF using javascript