//需要引入html2canvas.js、jquery.js文件

html:

  1. <button type="button" class="btn btn-primary " id="pdfDown" >PDf导出</button>

js:

  1. $("#pdfDown").on('click',function(){
  2. var element = $(".orgchart"); // 这个dom元素是要导出pdf的div容器,即要生成PDF的div
  3. var w; // 获得该容器的宽
  4. var h; // 获得该容器的高
         //因为我是两种分布情况,故而有了下边的if、else,如果只有一种用else里的即可
  5. if($(".btnActive").attr('id') == 'Hmerage'){
  6. h = element.outerWidth()
  7. w = element.outerHeight()
  8. }else{
  9. w = element.outerWidth()
  10. h = element.outerHeight()
  11. }
  12. var offsetTop = element.offset().top; // 获得该容器到文档顶部的距离
  13. var offsetLeft = element.offset().left; // 获得该容器到文档最左的距离
  14. var canvas = document.createElement("canvas");
  15. canvas.width = w * 2; // 将画布宽&&高放大两倍
  16. canvas.height = h * 2;
  17. var context = canvas.getContext("2d");
  18. var scale = 2;
  19. context.scale(2, 2);
  20. context.translate(-offsetLeft, -offsetTop);
  21.  
  22. var opts = {
  23. scale: scale,
  24. canvas: canvas,
  25. width: w,
  26. height: h,
  27. useCORS: true,
  28. background: '#ffffff'
  29. }
  30.  
  31. html2canvas(element, opts).then(function (canvas) {
  32.  
  33. var contentWidth = canvas.width;
  34. var contentHeight = canvas.height;
  35. //一页pdf显示html页面生成的canvas高度;
  36. var pageHeight = contentWidth / 592.28 * 841.89;
  37. //未生成pdf的html页面高度
  38. var leftHeight = contentHeight;
  39. //页面偏移
  40. var position = 0;
  41. //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
  42. var imgWidth = 595.28*1.01;
  43. var imgHeight = 592.28 / contentWidth * contentHeight*1.01;
  44.  
  45. var pageData = canvas.toDataURL('image/jpeg', 1.0);
  46. var pdf = new jsPDF('', 'pt', 'a4');
  47.  
  48. //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
  49. //当内容未超过pdf一页显示的范围,无需分页
  50. if (leftHeight < pageHeight) {
  51. pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
  52. } else { // 分页
  53. while (leftHeight > 0) {
  54. pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
  55. leftHeight -= pageHeight;
  56. position -= 841.89;
  57. //避免添加空白页
  58. if (leftHeight > 0) {
  59. pdf.addPage();
  60. }
  61. }
  62. }
  63. pdf.save('content.pdf');
  64. })
  65. })

将div的内容生成清晰的PDF、高清PDF的更多相关文章

  1. PHP和MySQL Web开发(原书第4版) 高清PDF+源代码

    PHP和MySQL Web开发(原书第4版) 高清PDF+源代码 [日期:2014-08-06] 来源:Linux社区  作者:Linux [字体:大 中 小]     内容简介 <PHP和My ...

  2. 21天网站建设实录 (雨辰资讯) 高清pdf扫描版​

    <21天网站建设实录>以网页设计师的项目开发为背景,以“阿里里在线购物”商业网站的开发过程为流程,通过21天的任务期限,以一天一项任务.一天掌握一项技能项目实战的学习模式,全面讲解了一个网 ...

  3. 《数据可视化之美》高清PDF全彩版|百度网盘免费下载|Python数据可视化

    <数据可视化之美>高清PDF全彩版|百度网盘免费下载|Python数据可视化 提取码:i0il 内容简介 <数据可视化之美>内容简介:可视化是数据描述的图形表示,旨在一目了然地 ...

  4. Sass和Compass设计师指南 Ben Frain 中文高清PDF扫描版​

    Sass和Compass设计师指南是<响应式Web设计:HTML5和CSS3实战>作者Ben Frain的又一力作.作者通过丰富.完整的案例,循序渐进地展示了Sass和Compass的使用 ...

  5. 《百面机器学习算法工程师带你去面试》高清PDF及epub+《美团机器学习实践》PDF及思维导图

    http://blog.sina.com.cn/s/blog_ecd882db0102yuek.html <百面机器学习算法工程师带你去面试>高清PDF及epub+<美团机器学习实践 ...

  6. HTML5权威指南 中文版 高清PDF扫描版​

    HTML5权威指南是一本系统学习网页设计的权威参考图书.<HTML5权威指南>分为五部分:第一部分介绍学习本书的预备知识和HTML.CSS和JavaScript的最新进展:第二部分讨论HT ...

  7. HTML5与CSS3设计模式 中文版 高清PDF扫描版

    HTML5与CSS3设计模式是一部全面讲述用HTML5和CSS3设计网页的教程.书中含350个即时可用的模式 (HTML5和CSS3代码片段),直接复制粘贴即可使用,更可以组合起来构建出无穷的解决方案 ...

  8. python网络爬虫高清PDF资料分享

    1.python+网络爬虫开发实战中文PDF高清版 链接:https://pan.baidu.com/s/1bks8J9kgqCArUlEoDg4acA 提取码:h9y2 复制这段内容后打开百度网盘手 ...

  9. 《工程热力学沈维道童钧耕第四版-带书签》高清pdf下载链接

    <工程热力学沈维道童钧耕第四版-带书签>高清pdf下载链接 百度网盘链接:https://pan.baidu.com/s/1dWksA8O3y2JSfIQy5lrU5g 提取码:7x9w ...

随机推荐

  1. spark streaming 3: Receiver 到 submitJobSet

     对于spark streaming来说,receiver是数据的源头.spark streaming的框架上,将receiver替换spark-core的以磁盘为数据源的做法,但是数据源(如监听某个 ...

  2. kotlin之基本数据类型

    数据类型                       占用字节数 Double 8 Float 4 Long 4 Int 4 Short 2 Byte 1 数据类型之间的转换 toByte():转换为 ...

  3. KVM 开启嵌套虚拟化

    问题 在 CentOS KVM 上启动虚拟机来部署 OpenStack 测试环境,在启动具有 CPU 绑定.NUMA 亲和的虚拟机时触发错误: libvirtError: Requested oper ...

  4. 【Java学习笔记】LinkedList JDK1.6

    如下一段代码,在JDK1.6的LinkedList中,是下图这样存储的.有一个节点值为null的节点,叫做header,header的next是0,3的next是header,这是一个循环链表 Lin ...

  5. java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)

    1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...

  6. 借助marquee实现弹幕效果

    HTML标签marquee实现滚动效果 .基于此,实现简易版 弹幕:  HTML <div class="right_liuyan"> <marquee id=& ...

  7. LR接口测试案例(录制)

  8. 描述下数据库中的事务--ACID各个的特点

    1. 原子性(Atomicity) 在一个事务内的操作,要么全部成功,要么全部失败. 2. 一致性(Consistency) 数据库从一个一致性状态,转移到另一个一致性状态. 3. 隔离性(Isola ...

  9. 病毒分析(三)-利用Process Monitor对熊猫烧香病毒进行行为分析

    前两次随笔我介绍了手动查杀病毒的步骤,然而仅通过手动查杀根本无法仔细了解病毒样本的行为,这次我们结合Process Monitor进行动态的行为分析. Process Monitor Process ...

  10. 交换机安全学习笔记 第九~十章 HSRP VRRP

    HSRP  (Hot Standby Router Protocol) 热备份路由器协议 思科私有 HSRP消息使用UDP 端口号 1985(IPv6时为2029) 使用多播地址 224.0.0.2( ...