使用html2canvas和jspdf把网页保存pdf并下载

直接上代码,先引入两个插件,jspdf放前面

<script src="/static/js/jspdf.debug.js"></script>
<script src="/static/js/html2canvas.js"></script>

点击下载时调用的方法


// 调用下载
download($("body>div"));/*** 下载* @param content 要保存的dom元素*/
async function download(content) {let indnum = 0;var PDF = new jsPDF('1', 'pt', [1920 * 0.75, 1080 * 0.75])for (let index = 0; index < content.length; index++) {await html2canvas(content[index], {useCORS: true,allowTaint: true,scale: 2 // 提升画面质量,但是会增加文件大小}).then(function (canvas) {/**jspdf将html转为pdf分页,整体思路:* 1. 获取DOM* 2. 将DOM转换为canvas* 3. 获取canvas的宽度、高度(稍微大一点)* 4. 将pdf的宽高设置为canvas的宽高* 5. 将canvas转为图片* 6. 实例化jspdf,将内容图片放在pdf中(因为内容宽高和pdf宽高一样,就只需要一页,也防止内容截断问题)*/// 得到canvas画布的单位是px 像素单位var contentWidth = canvas.width;var contentHeight = canvas.height;// 将canvas转为base64图片var pageData = canvas.toDataURL('image/jpeg', 1.0)// 设置内容图片的尺寸,img是pt单位var imgX = (contentWidth) / 2 * 0.75;var imgY = (contentHeight / 2 * 0.75); //内容图片这里不需要留白的距离// 将内容图片添加到pdf中,因为内容宽高和pdf宽高一样,就只需要一页,位置就是 0,0PDF.addImage(pageData, 'jpeg', 0, 0, imgX, imgY);if (indnum < content.length - 1) {PDF.addPage();}// 保存下载if (indnum == content.length - 1) {PDF.save('学习资料.pdf')}indnum += 1;}).catch(res => {console.log("下载失败,请重新下载!");})}
}

使用html2canvas和jspdf把网页保存pdf并下载相关推荐

  1. 利用html2canvas 和 jspdf 实现html转pdf html转图片

    利用html2canvas 和 jspdf 实现html转pdf let dom = document.getElementById("pdf");html2canvas(dom) ...

  2. Vue中使用html2canvas和jspdf插件实现导出pdf(自定义html样式可带图片)并下载

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_BADAO_LIUMANG_QIZHI的博客-CSDN博客_若依前后端分离文档 在上面搭建起 ...

  3. html2pdf vue,VUE项目中利用html2canvas和JsPdf实现页面转PDF并保证图片不会被切断

    1.安装html2canvas和JsPdf //第一个.将页面html转换成图片 npm install --save html2canvas //第二个.将图片生成pdf npm install j ...

  4. H5 -- (功能)基于html2canvas实现长按网页保存为图片到本地

    1.需求:长按页面中的一部分(里面有动态获取的用户昵称.头像及动态生成的二维码),弹出下载框,点击后将这部分保存为图片下载到手机里(如图) 2.分析:由于有动态获取数据,需等DOM元素生成之后,再将这 ...

  5. vue中将网页以pdf格式下载

    1.下载 html2canvas和jspdf  两个插件 yarn add html2canvas jspdf 2.html2canvas 和 jspdf github地址 https://githu ...

  6. 网页保存PDF 保留文字 删除页面 裁剪页面 删除不需要的内容

    Chrome浏览器打开网页 下拉使得所有内容得到加载 打印->另存为PDF 如果内容较多较长,可以选择更大的纸张,比如A0 Adobe Acrobat打开下载的pdf 文档->删除页面-& ...

  7. 基于html2canvas实现网页保存为图片及图片清晰度优化

    一.实现HTML页面保存为图片 1.1 已知可行方案 现有已知能够实现网页保存为图片的方案包括: **方案1:**将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输 ...

  8. 微信长按网页保存为截图

    本文是我处理问题时看到的一篇博客,感觉很详细,所以保存了, 原文地址 H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 ...

  9. h5跨域访问图片_网页保存为图片及高清截图的优化 | canvas跨域图片配置

    本次技术调研来源于H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 将整个网页保存为图片是一个十分有趣的功能,常见于H ...

最新文章

  1. [HOW TO]-ubuntu20.10搭建openjrok服务指南
  2. 第二章 Matlab变量
  3. 阿里工程师总结的《MySQL 笔记高清 PDF 》 开放下载
  4. OpenGL 使用FDTD求解电磁波方程
  5. BPSK信号matlab,BPSK信号调制解调与MATLAB仿真.docx
  6. 冬季海报素材温暖上线,PSD分层设计师最爱
  7. linux阻止程序,Linux:阻止某些应用程序/主机名的IPv6
  8. oracle中外键的使用方法,Oracle数据库中外键的相关操作整理
  9. 工具推荐:JDownloader - 下载网盘资料的好工具
  10. 首个步态识别框架开源了
  11. [CTF]Brainfuck/Ook!编码
  12. STM32F103ZET6【标准库函数开发】----- 04串口4的IO口收发数据实验测试
  13. 重磅:一台电脑两个macOS系统,macOS Big Sur和macOS Monterey切换使用
  14. 人类一败涂地苹果版_所有游戏联机教程/虚拟局域网/MC联机教程/基岩版联机教程/MC盗版联机教程...
  15. Java大数据开发知识体系简介
  16. Chrome开发工具Network没有显示完整的http request和response对话
  17. SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)
  18. 台积电业绩惊人,但全球芯片行业衰退影响加剧,将加码中国市场
  19. 零基础,没方向,如何快速有效学习编程语言?
  20. Vue启动报错This is probably not a problem with npm. There is likely additional logging output above.

热门文章

  1. 北京医保可报销的定点医院
  2. 工作站属于通用计算机吗,我们常说的工作站到底和普通电脑有什么不一样?工作站好在哪?...
  3. win10与内置ubuntu之间复制粘贴操作
  4. 5g网站服务器宽带,别装有线宽带了,5G以后,有线宽带将被淘汰
  5. 045:魔兽世界三(开战) 程序设计实习MOOC / 程序设计与算法(三)测验题汇总(2020春季) 已经结束
  6. 计算机用户接入广域网的技术,第五章广域网接入技术全解.ppt
  7. 1.2开发小程序的准备工作
  8. 五大爆款单视频开头,学会做短视频很轻松
  9. 多地力推企业上云,大力发展工业互联网|中机智库
  10. python版局域网端口扫描