是否有一种方法来使用模式/纹理使用addSVG的jsPDF

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

本文关键字:模式 addSVG jsPDF 纹理 方法 一种 是否      更新时间:2023-09-26

我有使用D3库生成的SVG图像,它们看起来很棒。问题是,addSVG不能使用它们。我验证了"常规"svg可以工作,我可以做基本的形状,笔触,颜色填充。有办法把这些图案弄进去吗?

理想情况下,我可以扩展addSVG来处理dataURIs,或者用模式填充构建CSS吗?

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

如果不是这些,有没有一种方法来创建一些模式在"常规"SVG,我可以使用代替?也许有一个现有的库比D3更简单?我其实不需要太多。

edit:值得一提的是Node.js不是一个选项,外部服务器资源也不是一个选项。我正在保存一个内部基于服务器的SVG到PNG转换器,以绝对最后的备份。此外,典型的客户端SVG到PNG的转换也是不允许的,我必须支持IE11,而且我无法绕过安全错误画布。toDataURL抛出(我不认为是可能的)。

edit: addSVG是非常基本的,不支持模式和其他花哨的东西。我能够使用画布和添加图像作为一个解决方案。

查看addSVG()的代码,我发现它对svg只有非常基本的支持。它只支持<path>元素,而且它们必须位于SVG的顶层。此外,它不支持改变路径颜色,它只允许'c'和'l'路径命令。

所以对你的问题的简单回答是"不"。:/

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

如何使用javascript在JSPDF中将SVG文件转换为PDF