html2pdf vue,vue+html2canvas 生成pdf报错

在Vue项目中使用html2canvas和jspdf库生成PDF时遇到问题,背景图无法正常显示,尽管图片URL在浏览器中可以正常打开。报错信息未给出。尝试了设置allowTaint和useCORS属性,但问题依然存在。代码段展示了调整元素位置以适应分页的逻辑,但没有解决图片显示问题。寻求社区帮助寻找解决方案。
摘要由CSDN通过智能技术生成

最近在使用html2canvas 生成pdf时,其中背景图是根据后台返回路径而动态生成的,

6ea4f196712915032d92dcaf63d7cdec.png

背景图片无法显示,而图片地址在浏览器中是可以打开显示出来的!

报错信息

bVbK5qA

js代码import html2Canvas from 'html2canvas'

import JsPDF from 'jspdf'

export default {

install(Vue, options) {

Vue.prototype.$getPdf = function (id, title) {

function getScrollWidth() {

var noScroll, scroll

var oDiv = document.createElement('DIV')

oDiv.style.cssText = 'position:absolute; top:-1000px; width:100px; height:100px; overflow:hidden;'

noScroll = document.body.appendChild(

Vue 中使用 pdf-lib 和 html2canvas 生成 PDF 文件需要进行以下几个步骤: 1. 安装依赖库 在项目中使用 npm 或者 yarn 安装 pdf-lib 和 html2canvas 依赖库。 2. 引入依赖库 在需要使用的 Vue 组件中引入 pdf-lib 和 html2canvas 依赖库。 ```javascript import { PDFDocument, StandardFonts } from 'pdf-lib'; import html2canvas from 'html2canvas'; ``` 3. 创建 PDF 文档对象 使用 pdf-lib 库中的 PDFDocument 类来创建 PDF 文档对象,并添加需要生成 PDF 的内容。 ```javascript const pdfDoc = await PDFDocument.create(); const page = pdfDoc.addPage([595.28, 841.89]); // 设置页面大小 const font = await pdfDoc.embedFont(StandardFonts.HelveticaBold); // 在页面上添加文本内容 page.drawText('Hello, PDF!', { x: 50, y: 700, size: 24, font: font, color: rgb(0, 0, 0), }); ``` 4. 将 HTML 元素转换为 Canvas 使用 html2canvas 库中的 toCanvas 方法将需要生成 PDFHTML 元素转换为 Canvas 对象。 ```javascript const canvas = await html2canvas(document.getElementById('pdf-content')); ``` 5. 将 Canvas 对象转换为 PNG 图片 将上一步得到的 Canvas 对象转换为 PNG 格式的图片。 ```javascript const pngUrl = canvas.toDataURL('image/png'); ``` 6. 添加 PNG 图片到 PDF 文档中 将上一步得到的 PNG 图片添加到 PDF 文档对象中。 ```javascript const pngImage = await pdfDoc.embedPng(pngUrl); page.drawImage(pngImage, { x: 50, y: 450, width: 500, height: 250, }); ``` 7. 导出 PDF 文件 使用 pdf-lib 库中的 save 方法将生成PDF 文件导出。 ```javascript const pdfBytes = await pdfDoc.save(); const blob = new Blob([pdfBytes], { type: 'application/pdf' }); saveAs(blob, 'example.pdf'); // 将 PDF 文件保存到本地 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值