vue3-实现截图当前页并转化为pdf文件

一.下载所需两个库

npm install --save html2canvas
npm install --save jspdf

二.引入所需库

import html2canvas from "html2canvas";
import jsPDF from "jspdf";

三.vue3使用示例

<template>
<div class="box" id="view">
//里面是你需要截图的html内容。此处省略。。
</div>
<div>
<button type="primary" @click="initData.event.savePdf">生成PDF</button>
</div>
</template>

<script lang="ts" setup>
import { ref, reactive } from "vue";
import html2canvas from "html2canvas";
import jsPDF from "jspdf";
/***初始化数据***/
const initData = reactive({
formData:{},
/***事件区域***/
event:{
 savePdf: () => {
 //对指定容器进行截屏
      html2canvas(document.getElementById("view"), {
        useCORS: true, //是否尝试使用CORS从服务器加载图像
        backgroundColor: "#fff", //画布背景色(如果未在DOM中指定)。设置null为透明
      }).then((canvas) => {
        // 转化成 dataurL
        let imgData = canvas.toDataURL("image/png");
        const doc = new jsPDF({
          orientation: "portrait",
          unit: "px",
          format: "a4",
        });
        const imgProps = doc.getImageProperties(imgData);
        const pdfWidth = doc.internal.pageSize.getWidth();
        const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
        doc.addImage(imgData, "PNG", 0, 0, pdfWidth, pdfHeight);
        doc.save("项目详情.pdf");
      });
 }
},

})
</script>

<style lang="scss" scoped>
//隔离样式区。。
</style>

四.html2canvas属性&&jspdf属性

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一行代码上晴天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值