jsPDF addSvgAsImage, canvg is not defined
我在我的Typescript React项目中使用jsPDF,我想使用jsPDF作为我的PDF的SVG。
我这样使用
1 2 3 4 5 6 7 8 | let svg = this.ref.innerHTML if (svg) svg = svg.replace(/\ ?\ |\ /g, '').trim() pdf.addSvgAsImage(svg, 15, 45, 270, 130, 'SLOW') |
,在我的浏览器中,出现此错误:
1 2 3 | Uncaught (in promise) ReferenceError: canvg is not defined at Object.et.addSvgAsImage (jspdf.min.js?e511:180) ... |
似乎我应该在全球范围内包括
有人在React项目中尝试过
好吧,我找到了使用Webpack 4的React 16.10.2项目的解决方案,它很简单:
1 2 3 4 5 6 7 8 9 10 11 12 13 | const webpack = require('webpack') module.exports = { // ... plugins: [ // ... new webpack.ProvidePlugin({ canvg: 'canvg', }), // ... ], // ... } |
1 2 3 4 5 6 7 8 9 10 | // ... const svg = useRef(null) // ... if (svg.current) { const svgData = new XMLSerializer().serializeToString(svg.current) pdf.addSvgAsImage(svgData, 0, 0, 270, 130) pdf.save('a4.pdf') } // ... |
但是,SVG的质量不好,因此我开始使用html2canvas。