vue3+ts使用html2canvas,jspd导出pdf文件

下载依赖包

javascript 复制代码
npm install html2canvas jspdf

使用

javascript 复制代码
<div ref="pdfContentref" id="content-to-print" class="contengt">
	// 里面编写需要导出的页面
</div>
<el-button @click="exportPdf" type="primary" class="btn">导出PDF</el-button>

引入

javascript 复制代码
import html2canvas from 'html2canvas';
import jsPDF from 'jspdf';
const pdfContentref = ref<any>(null);

核心代码

javascript 复制代码
const exportPdf = () => {
    const content = pdfContentref.value;
    exportDataPdf(content)
}
const exportDataPdf = (el: any) => {
  html2canvas(el, {
    scale: 3, // 设置缩放
    useCORS: true, // 允许canvas画布内 可以跨域请求外部链接图片, 允许跨域请求。
    allowTaint: true,
    logging: false, // 打印日志用的 可以不加默认为false
    backgroundColor: '#ffffff'
  }).then((canvas) => {
    console.log('生成');
    const imgData = canvas.toDataURL('image/jpeg', 1.0);
      console.log(imgData);
      const pdf = new jsPDF();
        const imgProps= pdf.getImageProperties(imgData);
        const pdfWidth = pdf.internal.pageSize.getWidth();
        const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
        pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
        pdf.save('测试.pdf');
    
  })
}
相关推荐
古月฿6 分钟前
大学生素质测评系统设计与实现
java·vue.js·redis·mysql·spring·毕业设计
码农秋10 分钟前
Element Plus DatePicker 日期少一天问题:时区解析陷阱与解决方案
前端·vue.js·elementui·dayjs
源码获取_wx:Fegn089517 分钟前
基于springboot + vue物业管理系统
java·开发语言·vue.js·spring boot·后端·spring·课程设计
郑州光合科技余经理1 小时前
实战:攻克海外版同城生活服务平台开发五大挑战
java·开发语言·javascript·数据库·git·php·生活
Yanni4Night1 小时前
JavaScript打包器大奖赛:谁是构建速度之王? 🚀
前端·javascript
SakuraOnTheWay1 小时前
解构 JavaScript 迭代器:一行代码引发的性能思考
javascript·性能优化
默海笑1 小时前
VUE后台管理系统:项目架构之搭建Layout架构解决方案与实现
前端·javascript·vue.js
csdn_aspnet1 小时前
C# 电子签名及文档存储
javascript·c#
麦麦大数据2 小时前
F051-vue+flask企业债务舆情风险预测分析系统
前端·vue.js·人工智能·flask·知识图谱·企业信息·债务分析
1024肥宅2 小时前
现代 JavaScript 特性:ES6+ 新特性深度解析与实践
前端·javascript·面试