实现方式比较简单,使用js代码实现的。

需要引入的js:

1、jQuery.js;

2、html2canvas.js(实现方式是先将Html页面转换成image图片然后在转换为pdf,所以转换之后会有一点不清晰【个人认为影响不大】);

2、FileSaver.js(下面的jspdf.js中的“savaAS”函数是基于FileSaver.js的);

3、jspdf.js(jspdf.js的支持还是挺多的,因为我写的这个页面没有那些相对复杂的标签【svg…】。所以本次只引入了插件包中的jspdf.js、addimage.js这两个js文件);

5、addimage.js;

上代码:

$("#turnToPdfButton").click(function(){
   html2canvas($("#mainPdfHtml"), { //选择你要导出的html区域
     onrendered: function(canvas) {
     var imgData = canvas.toDataURL('image/jpeg');
     var img = new Image();
     img.src = imgData;
     //根据图片的尺寸设置pdf的规格,要在图片加载成功时执行,之所以要*0.225是因为比例问题
     img.onload = function() {
     //此处需要注意,pdf横置和竖置两个属性,需要根据宽高的比例来调整,不然会出现显示不完全的问题
     if (this.width > this.height) {
       var doc = new jsPDF('l', 'mm', [this.width * 0.225, this.height * 0.225]);
     } else {
       var doc = new jsPDF('p', 'mm', [this.width * 0.225, this.height * 0.225]);
     }
     doc.addImage(imgData, 'jpeg', 0, 0, this.width * 0.225, this.height * 0.225);
     //根据下载保存成不同的文件名
     doc.save('下载名称.pdf');
   }
  },
  background: "#fff",
  //这里给生成的图片默认背景,不然的话,如果你的html根节点没设置背景的话,会用黑色填充。
  allowTaint: true //避免一些不识别的图片干扰,默认为false,遇到不识别的图片干扰则会停止处理html2canvas
  });
});

资源下载地址:

html2canvas.js  >>>   https://github.com/niklasvh/html2canvas/releases

FileSaver.js  >>>   https://github.com/eligrey/FileSaver.js/

jspdf.js  >>>   https://github.com/MrRio/jsPDF

实现html页面转pdf的更多相关文章

  1. PDF裁剪页面,PDF怎么裁剪页面的方法

    PDF文件要怎么裁剪页面呢,是不是有很多的小伙们想知道呢,当打开一个PDF文件的时候如果一个页面中有很多的空白页面就会影响文件的美观与使用,今天小编就为大家分享一下小编的裁剪页面的方法. 操作软件:迅 ...

  2. Javascript 将 HTML 页面生成 PDF 并下载

    最近碰到个需求,需要把当前页面生成 pdf,并下载.弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) html2canvas 简介 我们可以直接在浏览器端使用html2canvas,对整个 ...

  3. ASP.NET C#根据HTML页面导出PDF

    在启明星采购系统里,新增了导出PDF功能.整个功能使用了第三方软件 wkhtmltopdf(下载) 官网 https://wkhtmltopdf.org/ 提供有更多版本下载 他可以把HTML页面转换 ...

  4. 使用JSP页面生成PDF报表

    转自:http://developer.51cto.com/art/200907/134261.htm 1.iText简介 iText是一个开放源码的Java类库,可以用来方便地生成PDF文件.大家通 ...

  5. js将 HTML 页面生成 PDF 并下载

    最近碰到个需求,需要把当前页面生成 pdf,并下载.弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 先来科普两个插件: html2Canvas 简介 我们可以直接在浏览器端使用html2 ...

  6. JSP页面导出PDF格式文件

    JSP页面导出PDF格式文件基本在前端页面可以全部完成 <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/ ...

  7. JS - 使用 html2canvas 将页面转PDF

    JS - 使用 html2canvas 将页面转PDF 本方法可以将页面元素块转为pdf. 网站地址 jspdf.js 官网地址:http://jspdf.com GitHub 主页:https:// ...

  8. html页面读取PDF小案例

    html页面 引用<script src="js/pdfobject.js" type="text/javascript" charset="u ...

  9. 动态jsp页面转PDF输出到页面

    最近工作中遇到不少问题.总结一下.这段代码主要功能是将一个生成JSP页面转发成PDF输出到页面 需要利用ITEXT String html = ServletUtils.forward(request ...

  10. 将jsp页面转pdf

    网上好多思路啊,大部分都是将html转pdf,这种方法我试了很多,都不能很好地支持jsp,稍微复杂一点根本不起作用,也不知他们的博客都怎么写的,还真是应了那句话天下博客一大抄,自己都不验证的 下面说下 ...

随机推荐

  1. es6快速入门 系列 - async

    其他章节请看: es6 快速入门 系列 async 前文我们已经知道 promise 是一种异步编程的选择.而 async 是一种用于执行异步任务更简单的语法. Tip:建议学完 Promise 在看 ...

  2. Java中对象调用方法的顺序

    Java虚拟机会预先为加载到内存中的每个类维护一个方法表(Method Table),其中列出了所有类中所有方法的签名. 现在有2个类A和B,其中,B是A的子类,和一个B类型的对象x,当调用x.f(a ...

  3. EXCEL根据某一列单元格特定标点符号分行,其它列内容一致

    注意事项:此方法注意运用excel空值单元格填充,因此数据处理之前,如果存在值为空的,请特殊处理,后期处理完再替换为原来的空值 1.在决定分行数的列后插入一列 2.根据逗号之前值最多的数量来决定分行数 ...

  4. centos使用yum安装docker

    1.先决条件 要安装 Docker 引擎,您需要 CentOS 7 或 8 的维护版本.不支持或测试存档版本. 该centos-extras库必须启用.默认情况下启用此存储库,但如果您已禁用它,则需要 ...

  5. 一QT获取当前时间和日期

    获取日期和时间使用QDateTime类,该类中有一个静态成员函数可以返回当前的时间信息 我们可以直接调用这个静态函数获取当前时间 QDateTime time = QDateTime::current ...

  6. 第9章:Ingress

    9.1 Ingress为弥补NodePort不足而生 1 单独用service暴露服务的方式,在实际生产环境中不太合适 ClusterIP 只能在集群内部访问. NodePort 方式的话,测试环境使 ...

  7. 关于vim

    全部删除:按esc后,然后dG全部复制:按esc后,然后ggyG全选高亮显示:按esc后,然后ggvG或者ggVG 在win中使用<C-a>是全选,如果需要在vim中使用<C-a&g ...

  8. 10 年 bloger 告诉你要不要写博客,又该如何优雅地写博客?

    关于作者:程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader.公众号后台回复关键字 "1024" 获取程序员大厂面试指南. 图:D ...

  9. acwing 890. 能被整除的数

    #include<bits/stdc++.h> #define ll long long using namespace std; int m; int n,p[20]; int sum, ...

  10. 42. Trapping Rain Water [dp][stack]

    description: Given n non-negative integers representing an elevation map where the width of each bar ...