将div的内容生成清晰的PDF、高清PDF
//需要引入html2canvas.js、jquery.js文件
html:
- <button type="button" class="btn btn-primary " id="pdfDown" >PDf导出</button>
js:
- $("#pdfDown").on('click',function(){
- var element = $(".orgchart"); // 这个dom元素是要导出pdf的div容器,即要生成PDF的div
- var w; // 获得该容器的宽
- var h; // 获得该容器的高
//因为我是两种分布情况,故而有了下边的if、else,如果只有一种用else里的即可- if($(".btnActive").attr('id') == 'Hmerage'){
- h = element.outerWidth()
- w = element.outerHeight()
- }else{
- w = element.outerWidth()
- h = element.outerHeight()
- }
- var offsetTop = element.offset().top; // 获得该容器到文档顶部的距离
- var offsetLeft = element.offset().left; // 获得该容器到文档最左的距离
- var canvas = document.createElement("canvas");
- canvas.width = w * 2; // 将画布宽&&高放大两倍
- canvas.height = h * 2;
- var context = canvas.getContext("2d");
- var scale = 2;
- context.scale(2, 2);
- context.translate(-offsetLeft, -offsetTop);
- var opts = {
- scale: scale,
- canvas: canvas,
- width: w,
- height: h,
- useCORS: true,
- background: '#ffffff'
- }
- html2canvas(element, opts).then(function (canvas) {
- var contentWidth = canvas.width;
- var contentHeight = canvas.height;
- //一页pdf显示html页面生成的canvas高度;
- var pageHeight = contentWidth / 592.28 * 841.89;
- //未生成pdf的html页面高度
- var leftHeight = contentHeight;
- //页面偏移
- var position = 0;
- //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
- var imgWidth = 595.28*1.01;
- var imgHeight = 592.28 / contentWidth * contentHeight*1.01;
- var pageData = canvas.toDataURL('image/jpeg', 1.0);
- var pdf = new jsPDF('', 'pt', 'a4');
- //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
- //当内容未超过pdf一页显示的范围,无需分页
- if (leftHeight < pageHeight) {
- pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
- } else { // 分页
- while (leftHeight > 0) {
- pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
- leftHeight -= pageHeight;
- position -= 841.89;
- //避免添加空白页
- if (leftHeight > 0) {
- pdf.addPage();
- }
- }
- }
- pdf.save('content.pdf');
- })
- })
将div的内容生成清晰的PDF、高清PDF的更多相关文章
- PHP和MySQL Web开发(原书第4版) 高清PDF+源代码
PHP和MySQL Web开发(原书第4版) 高清PDF+源代码 [日期:2014-08-06] 来源:Linux社区 作者:Linux [字体:大 中 小] 内容简介 <PHP和My ...
- 21天网站建设实录 (雨辰资讯) 高清pdf扫描版
<21天网站建设实录>以网页设计师的项目开发为背景,以“阿里里在线购物”商业网站的开发过程为流程,通过21天的任务期限,以一天一项任务.一天掌握一项技能项目实战的学习模式,全面讲解了一个网 ...
- 《数据可视化之美》高清PDF全彩版|百度网盘免费下载|Python数据可视化
<数据可视化之美>高清PDF全彩版|百度网盘免费下载|Python数据可视化 提取码:i0il 内容简介 <数据可视化之美>内容简介:可视化是数据描述的图形表示,旨在一目了然地 ...
- Sass和Compass设计师指南 Ben Frain 中文高清PDF扫描版
Sass和Compass设计师指南是<响应式Web设计:HTML5和CSS3实战>作者Ben Frain的又一力作.作者通过丰富.完整的案例,循序渐进地展示了Sass和Compass的使用 ...
- 《百面机器学习算法工程师带你去面试》高清PDF及epub+《美团机器学习实践》PDF及思维导图
http://blog.sina.com.cn/s/blog_ecd882db0102yuek.html <百面机器学习算法工程师带你去面试>高清PDF及epub+<美团机器学习实践 ...
- HTML5权威指南 中文版 高清PDF扫描版
HTML5权威指南是一本系统学习网页设计的权威参考图书.<HTML5权威指南>分为五部分:第一部分介绍学习本书的预备知识和HTML.CSS和JavaScript的最新进展:第二部分讨论HT ...
- HTML5与CSS3设计模式 中文版 高清PDF扫描版
HTML5与CSS3设计模式是一部全面讲述用HTML5和CSS3设计网页的教程.书中含350个即时可用的模式 (HTML5和CSS3代码片段),直接复制粘贴即可使用,更可以组合起来构建出无穷的解决方案 ...
- python网络爬虫高清PDF资料分享
1.python+网络爬虫开发实战中文PDF高清版 链接:https://pan.baidu.com/s/1bks8J9kgqCArUlEoDg4acA 提取码:h9y2 复制这段内容后打开百度网盘手 ...
- 《工程热力学沈维道童钧耕第四版-带书签》高清pdf下载链接
<工程热力学沈维道童钧耕第四版-带书签>高清pdf下载链接 百度网盘链接:https://pan.baidu.com/s/1dWksA8O3y2JSfIQy5lrU5g 提取码:7x9w ...
随机推荐
- spark streaming 3: Receiver 到 submitJobSet
对于spark streaming来说,receiver是数据的源头.spark streaming的框架上,将receiver替换spark-core的以磁盘为数据源的做法,但是数据源(如监听某个 ...
- kotlin之基本数据类型
数据类型 占用字节数 Double 8 Float 4 Long 4 Int 4 Short 2 Byte 1 数据类型之间的转换 toByte():转换为 ...
- KVM 开启嵌套虚拟化
问题 在 CentOS KVM 上启动虚拟机来部署 OpenStack 测试环境,在启动具有 CPU 绑定.NUMA 亲和的虚拟机时触发错误: libvirtError: Requested oper ...
- 【Java学习笔记】LinkedList JDK1.6
如下一段代码,在JDK1.6的LinkedList中,是下图这样存储的.有一个节点值为null的节点,叫做header,header的next是0,3的next是header,这是一个循环链表 Lin ...
- java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件 准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...
- 借助marquee实现弹幕效果
HTML标签marquee实现滚动效果 .基于此,实现简易版 弹幕: HTML <div class="right_liuyan"> <marquee id=& ...
- LR接口测试案例(录制)
- 描述下数据库中的事务--ACID各个的特点
1. 原子性(Atomicity) 在一个事务内的操作,要么全部成功,要么全部失败. 2. 一致性(Consistency) 数据库从一个一致性状态,转移到另一个一致性状态. 3. 隔离性(Isola ...
- 病毒分析(三)-利用Process Monitor对熊猫烧香病毒进行行为分析
前两次随笔我介绍了手动查杀病毒的步骤,然而仅通过手动查杀根本无法仔细了解病毒样本的行为,这次我们结合Process Monitor进行动态的行为分析. Process Monitor Process ...
- 交换机安全学习笔记 第九~十章 HSRP VRRP
HSRP (Hot Standby Router Protocol) 热备份路由器协议 思科私有 HSRP消息使用UDP 端口号 1985(IPv6时为2029) 使用多播地址 224.0.0.2( ...