JSPDF运用实例(解决图片跨域问题)
为什么80%的码农都做不了架构师?>>>
- 引入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运用实例(解决图片跨域问题)相关推荐
- html图片左侧留白,HTML+CSS入门 如何解决图片跨域导致的截图空白
本篇教程介绍了HTML+CSS入门 如何解决图片跨域导致的截图空白,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 1. 后端支持:图片要是cdn上的地址,并且允许图片跨域 ...
- 前端解决图片跨域问题:net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin
前言 项目中使用了从别的网站上面获取的图片url,在项目中展示报错 net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin 200 从network中可以看到有请求报CO ...
- vue实现HTML转PDF (已解决清晰、页边距、图片跨域导出等问题)
最近有需求做简历打印的功能,就又花时间研究了一下html转图片导出,里面牵扯到多页pdf导出时的分页和页边距问题,清晰度问题以及图片跨域问题等.我们一个一个来解决. 一.先说HTML转PDF的实现方法 ...
- 解决canvas画布图片跨域问题
设置图片crossOrigin属性 image.crossOrigin = 'Annoymous' crossorigin有如下取值: anonymous:执行一个cors请求,但是该请求不会发送相关 ...
- nginx设置图片跨域访问
生而为人 谁不付出 谁不努力 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log ...
- 解决Canvas.toDataURL 图片跨域问题
解决Canvas.toDataURL 图片跨域问题 参考文章: (1)解决Canvas.toDataURL 图片跨域问题 (2)https://www.cnblogs.com/ajg016/p/547 ...
- php把网络图片转化为base64格式,解决html2canvas图片跨域问题
一.前言 最近在用html2canvas做网页截图功能.这个开源库使用很简单,代码也很方便,但难点在于跨域问题.比如说,我的一个页面中有图片也有文字,图片是来自于图片服务器的网络图片.此时我们要生成截 ...
- 快速解决Canvas.toDataURL 图片跨域的问题
快速解决Canvas.toDataURL 图片跨域的问题 参考文章: (1)快速解决Canvas.toDataURL 图片跨域的问题 (2)https://www.cnblogs.com/good10 ...
- axios请求跨域前端解决_Vue-创建axios实例并实现跨域请求(完整过程-前端)
Vue-创建axios实例并实现跨域请求 .env配置文件 VUE_APP_BASE_API=/server request.js import axios from 'axios' const te ...
最新文章
- Ubuntu mysql数据库导入sql文件
- 堆溢出攻击(XP SP2 - 2003)
- 【linux系统】maven安装
- 使用JQUERY实现局部页面定时刷新
- hive ALLOW_UNQUOTED_CONTROL_CHARS
- ITK:过滤器Filter和ParallelizeImageRegion比较
- redis实战之使用redis实现排行榜
- 如何在网页中插入Flv视频文件
- 从Java程序员进阶到架构师,6大核心技能要领详解
- 下拉菜单,防鼠标反复触发
- java自动化高频面试题
- 暗黑启示录bt版java下载,Transmission搭建BT下载服务器
- linux 固态硬盘 分区工具,固态硬盘怎么分区?使用免费分区助手轻松搞定!
- 新浪邮箱服务器密码被盗,邮箱密码盗取严重的注意事项以及处理建议
- 拼多多订单详情接口订单同步接口
- C语言实现位数组(bit数组)与位数组的简单应用举例
- 模拟频率、数字频率、模拟角频率之间的关系
- r8168网卡在同方超翔z8307机器V10版本无法上网问题
- jffs2_note
- MyBatis主键回填
热门文章
- OpenStack Neutron浅析(二)
- leetcode算法题--二叉树中的列表★
- linux 修改dmi信息,如何从linux清除DMI系统事件日志?
- python webshell_python脚本实现查找webshell的方法
- 数据结构与算法学习-开篇
- react报错this.setState is not a function
- 商业级全局负载均衡器 zeus.ZXTM 实施方案
- SQL Server中执行正则表达式
- 简述Java内存模型的由来、概念及语义
- findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...