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');
    
  })
}
相关推荐
cdcdhj12 分钟前
vue用通过npm的webpack打包编译,这样更适合灵活配置的项目
vue.js·webpack·npm
恋猫de小郭13 分钟前
如何查看项目是否支持最新 Android 16K Page Size 一文汇总
android·开发语言·javascript·kotlin
赵大仁41 分钟前
React Native 与 Expo
javascript·react native·react.js
程序员与背包客_CoderZ2 小时前
Node.js异步编程——Callback回调函数实现
前端·javascript·node.js·web
清灵xmf2 小时前
从 Set、Map 到 WeakSet、WeakMap 的进阶之旅
前端·javascript·set·map·weakset·weakmap
运维@小兵3 小时前
vue使用路由技术实现登录成功后跳转到首页
前端·javascript·vue.js
肠胃炎3 小时前
React构建组件
前端·javascript·react.js
邝邝邝邝丹3 小时前
React学习———React.memo、useMemo和useCallback
javascript·学习·react.js
美酒没故事°4 小时前
纯css实现蜂窝效果
前端·javascript·css
GISer_Jing4 小时前
React useState 的同步/异步行为及设计原理解析
前端·javascript·react.js