js生成word中图片处理方法


Posted in Javascript onJanuary 06, 2018

首先功能是要求前台导出word,但是前后台是分离的,图片存在后台,所以就存在跨域问题。

导出文字都是没有问题的(jquery.wordexport.js),但是导出图片就存在问题了:

图片是以链接形式存到word中,这样如果是需要vpn的网站就会存在生成的word在没有vpn的情况下打不开,有vpn的情况下必须启用编辑才能加载出来图片。

解决办法:将图片转换成Data URL格式,再导出。

详细代码如下所示:

function changeImgToDataurl(){
 var charImg = document.all("exportdom").getElementsByTagName("img"); 
 var imgURLs = ""; 
 for (var i = 0; i < charImg.length; i++) { 
   var imgURL = charImg[i].currentSrc; 
   getBase64(imgURL,charImg[i]);
 } 
}
function getBase64(url,charImg){
  var Img = new Image();
  Img.crossOrigin = "Anonymous";//跨域必须使用,且后台也得设置允许跨域
  dataURL='';
  Img.src=url;
  Img.onload=function(){ //要先确保图片完整获取到,这是个异步事件
   var canvas = document.createElement("canvas"), //创建canvas元素
   width=Img.width, //确保canvas的尺寸和图片一样
   height=Img.height;
   canvas.width=width;
   canvas.height=height;
   canvas.getContext("2d").drawImage(Img,0,0,width,height); //将图片绘制到canvas中
   dataURL=canvas.toDataURL('image/jpg'); //转换图片为dataURL
   condataurl?condataurl(dataURL,charImg):null; //调用回调函数
  };
} 
function condataurl(dataURL,charImg){
 charImg.src=dataURL;
 //console.log(charImg);
}

以上这篇js生成word中图片处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
两个DIV等高的JS的实现代码
Dec 23 Javascript
javascript面向对象的方式实现的弹出层效果代码
Jan 28 Javascript
jquery ajax abort()的使用方法
Oct 28 Javascript
TBCompressor js代码压缩
Jan 05 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
jQuery中slideUp 和 slideDown 的点击事件
Feb 26 Javascript
微信小程序 location API实例详解
Oct 02 Javascript
Angular1.x自定义指令实例详解
Mar 01 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
May 10 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
Vue实现导航栏的显示开关控制
Nov 01 Javascript
JavaScript实现HSL拾色器
May 21 Javascript
详解webpack中的hash、chunkhash、contenthash区别
Jan 05 #Javascript
浅谈webpack对样式的处理
Jan 05 #Javascript
js实现HTML中Select二级联动的实例
Jan 05 #Javascript
详解tween.js 中文使用指南
Jan 05 #Javascript
Javascript中从学习bind到实现bind的过程
Jan 05 #Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
Jan 05 #Javascript
vue 中directive功能的简单实现
Jan 05 #Javascript
You might like
劣质的PHP代码简化
2010/02/08 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
自己的js工具_Form 封装
2009/08/21 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
js表单验证实例讲解
2016/03/31 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
python基础教程之序列详解
2014/08/29 Python
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python用threading实现多线程详解
2017/02/03 Python
详解Python中的静态方法与类成员方法
2017/02/28 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
如何基于python操作excel并获取内容
2019/12/24 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
奶茶专卖店创业计划书
2014/01/18 职场文书
关于环保的建议书400字
2014/03/12 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
执行力心得体会范文
2016/01/11 职场文书
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫
win sever 2022如何占用操作主机角色
2022/06/25 Servers