我在Typescript React项目中使用jsPDF,我想使用jsPDF作为PDF的SVG。
我这样使用addSvgAsImage
:
addSvgAsImage
并且在我的浏览器中,我收到此错误:
let svg = this.ref.innerHTML
if (svg)
svg = svg.replace(/\r?\n|\r/g, '').trim()
pdf.addSvgAsImage(svg, 15, 45, 270, 130, 'SLOW')
似乎我应该全局包含Uncaught (in promise) ReferenceError: canvg is not defined
at Object.et.addSvgAsImage (jspdf.min.js?e511:180)
...
(canvg
),但是我不知道如何做到这一点。
有人在React项目中尝试过https://github.com/MrRio/jsPDF/issues/2205还是有一个想法我该如何解决这个问题?
Webpack 4的React 16.10.2项目的解决方案,这很简单:
addSvgAsImage
:
webpack.config.js
const webpack = require('webpack') module.exports = { // ... plugins: [ // ... new webpack.ProvidePlugin({ canvg: 'canvg', }), // ... ], // ... }
:
MyComponent.js
但是,SVG的质量不好,因此我开始使用// ...
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')
}
// ...
。