首页 > 编程 > JavaScript > 正文

js生成word中图片处理方法

2019-11-19 14:35:05
字体:
来源:转载
供稿:网友

首先功能是要求前台导出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中图片处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表