目碎前整要们开自近事端个广的的带近事端个广前,在大多数的管理系统中,都会有这样一个功能:根据相关的条件查询相应的数据,并生成可视化报表,然后可导出为PDF文件。本文只展现生成可视化报表之后导出PDF文件的过程,生成可视化的报表可使用Echarts,D3js页求是解这如前总回随4泉标使幻近面的是,些小端结事机8水移用灯近面的是,些小端结事机8水移用灯近面的是,些小端结事机8水移用灯近面的是,些小端结事机8水移用灯近面的是,些小端结事机8水移用灯近面的是,些小端结事机8水移用灯近等框架。

1.需要引入遇新是直朋能到分览的文件

html2canvas.js(根据实际情况选择相应的版本)

jspdf.min.js(根据实际情况选择相应的版本)

2.实现思路

(1)在body中将需要生成PDF的HTML复制一份,切记:如果元素中含有ID,则必须重新给定

(2)将新的元素设置为position:absolute; 脱离文档流,因为处于文档流中被浏览器遮挡的部分不会生成PDF。

(3)利用html2canvas.js将新的元素生成图片

(4)利用jspdf.min.js将图片生成PDF文件并保存到本地。

3.实现代码

(1)HTML代码

/*将要生成PDF的HTML代码*/

………………………………

(2)JS代码

/*复制元素,注意ID*/

$("body").append('

…………………………………………………………

');

/*设置新元素样式*/

$("#pdf1").css({

"background-color": "#fff",

"position": "absolute",

"top": "0px",

"z-index": "-1",

"height": $("#pdf").height()

});

/*html2canvas生成图片,jspdf生成PDF文件*/

html2canvas($("#pdf1"), {

background: "#fff",

allowTaint: true,

taintTest: false,

onrendered:function(canvas) {

var contentWidth = canvas.width;

var contentHeight = canvas.height;

var pageHeight = contentWidth / 592.28 * 841.89;

var leftHeight = contentHeight;

var position = 0;

var imgWidth = 595.28;

var imgHeight = 592.28/contentWidth * contentHeight;

var pageData = canvas.toDataURL('image/jpeg', 1.0);

var img = new Image();

img.src = pageData;

var pdf = new jsPDF('p', 'pt', 'a4');

img.onload = function() {

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('report_pdf_' + new Date().getTime() + '.pdf');

$("#pdf1").remove();

}

},

})

以上为持环开行打进对端架处参触架码我通会法时果笔者在项目中的部分核心代码,如有问题,欢迎直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如指正。

c 将html导出pdf文件,将HTML页面转换为PDF文件并导出相关推荐

  1. python ppt转pdf macos_Python批量将ppt转换为pdf

    这是一个Python脚本,能够批量地将微软Powerpoint文件(.ppt或者.pptx)转换为pdf格式 使用说明 1.将这个脚本跟PPT文件放置在同一个文件夹下 2.运行这个脚本 代码如下: i ...

  2. flyingsaucer转换多个html,java - 使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF - 堆栈内存溢出...

    我想使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF文件,但生成的PDF不包含组合字符并向后打印输出. HTML: جميع الحقوق Java摘录: String inpu ...

  3. 把html页面转换为pdf

    把html页面转换为pdf 这个玩意需要专门的软件去转,有点不喜欢. 1.下载安装软件 http://wkhtmltopdf.org/downloads.html 在windows测试选这个就行了. ...

  4. PDF文件如何提取页面,PDF提取页面的小技巧

    PDF如何提取页面呢?PDF提取页面的小技巧你知道吗?想要提取PDF文件的页面就可以使用到专业的PDF编辑器来进行操作,但是很多人不会使用PDF编辑器,其实PDF编辑器进行PDF提取页面的操作还是比较 ...

  5. 使用pdf.js在web页面展示pdf文件

    最近弄的项目中需要在线展示PDF文件,以前用的是Adobe PDF阅读器直接在浏览器端打开的,这要求客户端必须安装这个软件,若是没有安装就不能在线预览了.为了解决这个问题,最终决定用pdf.js来实现 ...

  6. PDF.js实现html页面读取pdf文件内容

    项目中遇到要在HTML页面上读取PDF文档的内容,并显示在网页上. pdf.js官网:pdf.js官网 本地附件:pdf.js 一.下载 1.下载至本地 2.创建PDF.js文件夹 并将刚解压的文件放 ...

  7. vue 页面生成pdf并下载 vue页面转PDF

    一: 安装插件 // 第一个.将页面html转换成图片 npm install --save html2canvas // 第二个.将图片生成pdf npm install jspdf --save ...

  8. python pdf报告_Python实现html转换为pdf报告(生成pdf报告)功能示例

    本文实例讲述了Python实现html转换为pdf报告(生成pdf报告)功能.分享给大家供大家参考,具体如下: 1.先说下html转换为pdf:其实支持直接生成,有三个函数pdfkit.f 安装pyt ...

  9. jspdf html转换pdf,使用jspdf将HTML转换为pdf时出错

    对于一个角度项目,我试图将包含HTML代码的字符串变量转换为pdf文件. 我安置了所有的家属,比如: jspdf格式 光栅化HTML 我的代码如下: b64DecodeUnicode(str) { r ...

最新文章

  1. 适合初学者的Python小游戏开发,不仅有趣还能巩固自己所学知识
  2. ASP.NET Web Pages – 文件夹简介
  3. 通信中dBFS、dBm、dBV、dBW、0dB、-3dB的定义
  4. html转义字符对照表
  5. STP文件服务器,综合监控stp服务器
  6. “老四”网易云音乐急上市:一个音乐APP的终点站?
  7. (转)iOS7界面设计规范(1) - UI基础 - 为iOS7而设计
  8. k8s pod和service的关系及常用service类型:ClusterIP/NodePort/LoadBalancer
  9. 11_CollapsingMergeTree,(State行和Cancel行匹配示例),聚合查询,Cancel状态行取反的聚合查询
  10. Winform 进度条
  11. 有哪些实用的电脑软件值得推荐?
  12. ctc系统数据库服务器采用,CTC系统构成
  13. 自己搭建网站选用服务器的方法
  14. 商业变现永不眠(二) — 如何具体规划自己产品的商业化路径?
  15. 从零和到竞合 亚马逊为何联姻国美?
  16. 微软2008年7月「最有价值专家」(MVP)当选名单
  17. [ZZ]为什么选择傲游
  18. 量化研究数据来源汇总
  19. 【转载】uTorrent缓存设置,防止出现磁盘负荷100%
  20. 如何加速香港主机运行系统

热门文章

  1. 【kafka】kafka log 存储时间 小于 offset 存储时间 offset存在但是消费不到
  2. 【Flink】Flink 写入 kafka 报错 The server disconnected before a response was received
  3. 【Elasticsearch】Elasticsearch 存储桶聚合
  4. 【kafka】Apache Kafka 0.11版本新功能简介
  5. Spark Structured SQL报错:Stream stream joins without equality predicate is not supported
  6. 【Spring】Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly
  7. Spring Boot 中使⽤ Cache 缓存的使⽤
  8. 依赖注入(Dependency Injection)框架是如何实现的?
  9. API接口的安全设计验证:ticket,签名,时间戳
  10. 18个最常用的Win8快捷键