当前位置: 首页 > news >正文

vue实现pdf下载——html2canvas

html2canvas 官方文档icon-default.png?t=N7T8https://html2canvas.hertzen.com/getting-started

html2canvas 的原理是通过遍历DOM树,将每一个HTML元素转化为Canvas对象,并叠加到一起形成一张完整的图片或者PDF文件

1. 安装插件

npm install html2canvas jspdf --save

 2.使用(页面已经写好)

2.1 在页面引入html2canvas

  1. import html2Canvas from 'html2canvas'

  2. import JsPDF from 'jspdf'

2.2 创建下载pdf页面的方法

methods:{downloadPdf () {var title = "证书"html2Canvas(document.querySelector('#pdfDom'), {allowTaint: true}).then(function (canvas) {let contentWidth = canvas.widthlet contentHeight = canvas.heightlet pageHeight = contentWidth / 592.28 * 841.89let leftHeight = contentHeightlet position = 0let imgWidth = 595.28let imgHeight = 592.28 / contentWidth * contentHeightlet pageData = canvas.toDataURL('image/jpeg', 1.0)let PDF = new JsPDF('', 'pt', 'a4')if (leftHeight < pageHeight) {PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)} else {while (leftHeight > 0) {PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)leftHeight -= pageHeightposition -= 841.89if (leftHeight > 0) {PDF.addPage()}}}PDF.save(title + '.pdf')})}}

 2.3 页面调用下载方法

 最终实现效果

    原要下载的页面

2. 下载的pdf

 

http://www.lryc.cn/news/369976.html

相关文章:

  • 安装docker+mysql的一些坑
  • React Native采集数据离线存储、网络状态监控、加密上传、鉴权
  • 网络数据库后端相关面试题(其三)
  • Hadoop之HDFS分布式文件系统
  • 插入删除单链表指定结点-偷天换日法
  • MybatisPlus代码生成器使用案例
  • 数学公式编辑器(前端预研)
  • 架构设计-如何安全地传输密码
  • 【库】nprogress 顶部进度条
  • 15、架构-可靠通讯之服务安全
  • web刷题记录(5)
  • Redis高并发高可用
  • 【前端取不到cookie的的原因】http-only
  • 推荐 2 个 火火火火 的开源项目
  • 从0到100:找搭子小程序开发笔记(一)
  • 迷宫最短路径求解--c++
  • SpringFramework总结
  • 品牌与产品:消费者决策的经济逻辑与品牌宣传的战略意义
  • MFC四种方法编写多线程
  • VPN简介
  • 【C/C++】用C语言写一个数据仓库,存储和修改数据
  • YOLO v5与YOLO v8框图比较
  • Redis集群(5)
  • STM32H5 DAC 配置
  • 第十九节:暴力递归到动态规划
  • 服务器部署spring项目jar包使用bat文件,省略每次输入java -jar了
  • 2024备忘知识点
  • JS基础与高级应用: 性能优化
  • Python | Leetcode Python题解之第145题二叉树的后序遍历
  • 公司面试题总结(二)