vue3 ts 导出PDF jsPDF

jsPDF 是一个基于 HTML5 的客户端解决方案,用于生成各种用途的 PDF 文档。

1、安装:npm install jspdf

                 npm install --save html2canvas

2、引入:import jsPDF from "jspdf" 

                import html2canvas from 'html2canvas'

3、使用



<template>
  <div>
    <a-button @click="handelChangeTime">pdf </a-button>
  </div>
  <div ref="chartRef">
    <h2>这里面添加需要导出的内容</h2>
    <h3>支持表格、文字、图片、</h3>
    <h3>原理就是将html生成为canvas图片,然后使用jsPDF将图片转为pdf</h3>
  </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
import html2canvas from 'html2canvas'
import jsPDF from 'jspdf'

  // 获取需要转换为PDF的元素 ref
const chartRef = ref()
const handelChangeTime = () => {
  
  // 将元素转换为canvas对象
  html2canvas(chartRef.value).then((canvas) => {
    // 将canvas对象转换为图像
    const imgData = canvas.toDataURL('image/png')
    const pdf = new jsPDF()
    const imgProps = pdf.getImageProperties(imgData)
    const pdfWidth = pdf.internal.pageSize.getWidth()
    const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width
    // 将图像添加到PDF文件中
    pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight)
       // 保存PDF文件
    pdf.save('exported.pdf')
  })
}
</script>

<style lang="less" scoped></style>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值