[jsPDF addSvgAsImage,canvg未定义

问题描述 投票:2回答:1

我在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还是有一个想法我该如何解决这个问题?

reactjs jspdf canvg
1个回答
0
投票
确定,我找到了使用

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')
    }
// ...
© www.soinside.com 2019 - 2024. All rights reserved.