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');
    
  })
}
相关推荐
米开朗积德19 分钟前
项目多文件JSON数值比对
javascript
sorryhc24 分钟前
【AI解读源码系列】ant design mobile——Image图片
前端·javascript·react.js
sorryhc1 小时前
【AI解读源码系列】ant design mobile——Button按钮
前端·javascript·react.js
VOLUN1 小时前
PageLayout布局组件封装技巧
前端·javascript·vue.js
掘金安东尼1 小时前
React 的 use() API 或将取代 useContext
前端·javascript·react.js
anyup1 小时前
🔥 🔥 为什么我建议你使用 uView Pro 来开发 uni-app 项目?
前端·vue.js·uni-app
蓝胖子的小叮当1 小时前
JavaScript基础(十三)函数柯里化curry
前端·javascript
前端Hardy2 小时前
HTML&CSS:有趣的SVG路径动画效果
javascript·css
前端Hardy2 小时前
HTML&CSS:超酷炫的3D动态卡片
前端·javascript·css
江城开朗的豌豆3 小时前
我在项目中这样处理useEffect依赖引用类型,同事直呼内行
前端·javascript·react.js