为什么80%的码农都做不了架构师?>>>   

  1. 引入js(这里可以自己去官网下载jspdf  https://parall.ax/products/jspdf)
<script type="text/javascript" src="${ctx }/staticfile/jsPDF/html2canvas_back.js"></script>
<script type="text/javascript" src="${ctx }/staticfile/jsPDF/dist/jspdf.debug.js"></script>

2.调用方法(这里给大家封装好了):

/*转pdf*/
function toPDF(){html2canvas(document.body, {useCORS:true,onrendered:function(canvas) {//这是文件名var fileName = "${submitExperimentFile.studentSubmitter.majorName}${submitExperimentFile.studentSubmitter.className}-${submitExperimentFile.studentSubmitter.username}${submitExperimentFile.studentSubmitter.name}"+"《${submitExperimentFile.experiment.experimentName}》";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;var imgHeight = 592.28/contentWidth * contentHeight;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(fileName+'.pdf');}})
}

3.全页面截图:这里给大家一个修改好的js(或者下载我的直接用,亲测可用):

4.关于图片跨域的问题,可以用一下步骤解决:

  • (1) 将页面中的图片全部加上crossorigin = anonymous

 $("img").each(function(index){$(this).attr("crossorigin","anonymous");});
  • (2)访问的服务器打开允许跨域访问,如果你是Tomcat可以这样配置:在Tomcat 的conf目录下的web.xml 加入以下代码:

    • <filter><filter-name>CorsFilter</filter-name><filter-class>com.vcooc.experiment.filter.CORSFilter</filter-class>
      </filter><filter-mapping><filter-name>CorsFilter</filter-name><url-pattern>/*</url-pattern>
      </filter-mapping>

      这样转成的pdf就能解决图片跨域问题

转载于:https://my.oschina.net/linwl/blog/1600847

JSPDF运用实例(解决图片跨域问题)相关推荐

  1. html图片左侧留白,HTML+CSS入门 如何解决图片跨域导致的截图空白

    本篇教程介绍了HTML+CSS入门 如何解决图片跨域导致的截图空白,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 1. 后端支持:图片要是cdn上的地址,并且允许图片跨域 ...

  2. 前端解决图片跨域问题:net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin

    前言 项目中使用了从别的网站上面获取的图片url,在项目中展示报错 net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin 200 从network中可以看到有请求报CO ...

  3. vue实现HTML转PDF (已解决清晰、页边距、图片跨域导出等问题)

    最近有需求做简历打印的功能,就又花时间研究了一下html转图片导出,里面牵扯到多页pdf导出时的分页和页边距问题,清晰度问题以及图片跨域问题等.我们一个一个来解决. 一.先说HTML转PDF的实现方法 ...

  4. 解决canvas画布图片跨域问题

    设置图片crossOrigin属性 image.crossOrigin = 'Annoymous' crossorigin有如下取值: anonymous:执行一个cors请求,但是该请求不会发送相关 ...

  5. nginx设置图片跨域访问

    生而为人 谁不付出 谁不努力 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log ...

  6. 解决Canvas.toDataURL 图片跨域问题

    解决Canvas.toDataURL 图片跨域问题 参考文章: (1)解决Canvas.toDataURL 图片跨域问题 (2)https://www.cnblogs.com/ajg016/p/547 ...

  7. php把网络图片转化为base64格式,解决html2canvas图片跨域问题

    一.前言 最近在用html2canvas做网页截图功能.这个开源库使用很简单,代码也很方便,但难点在于跨域问题.比如说,我的一个页面中有图片也有文字,图片是来自于图片服务器的网络图片.此时我们要生成截 ...

  8. 快速解决Canvas.toDataURL 图片跨域的问题

    快速解决Canvas.toDataURL 图片跨域的问题 参考文章: (1)快速解决Canvas.toDataURL 图片跨域的问题 (2)https://www.cnblogs.com/good10 ...

  9. axios请求跨域前端解决_Vue-创建axios实例并实现跨域请求(完整过程-前端)

    Vue-创建axios实例并实现跨域请求 .env配置文件 VUE_APP_BASE_API=/server request.js import axios from 'axios' const te ...

最新文章

  1. Ubuntu mysql数据库导入sql文件
  2. 堆溢出攻击(XP SP2 - 2003)
  3. 【linux系统】maven安装
  4. 使用JQUERY实现局部页面定时刷新
  5. hive ALLOW_UNQUOTED_CONTROL_CHARS
  6. ITK:过滤器Filter和ParallelizeImageRegion比较
  7. redis实战之使用redis实现排行榜
  8. 如何在网页中插入Flv视频文件
  9. 从Java程序员进阶到架构师,6大核心技能要领详解
  10. 下拉菜单,防鼠标反复触发
  11. java自动化高频面试题
  12. 暗黑启示录bt版java下载,Transmission搭建BT下载服务器
  13. linux 固态硬盘 分区工具,固态硬盘怎么分区?使用免费分区助手轻松搞定!
  14. 新浪邮箱服务器密码被盗,邮箱密码盗取严重的注意事项以及处理建议
  15. 拼多多订单详情接口订单同步接口
  16. C语言实现位数组(bit数组)与位数组的简单应用举例
  17. 模拟频率、数字频率、模拟角频率之间的关系
  18. r8168网卡在同方超翔z8307机器V10版本无法上网问题
  19. jffs2_note
  20. MyBatis主键回填

热门文章

  1. OpenStack Neutron浅析(二)
  2. leetcode算法题--二叉树中的列表★
  3. linux 修改dmi信息,如何从linux清除DMI系统事件日志?
  4. python webshell_python脚本实现查找webshell的方法
  5. 数据结构与算法学习-开篇
  6. react报错this.setState is not a function
  7. 商业级全局负载均衡器 zeus.ZXTM 实施方案
  8. SQL Server中执行正则表达式
  9. 简述Java内存模型的由来、概念及语义
  10. findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...