欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js生成word中图片处理方法

程序员文章站 2022-04-15 20:08:12
首先功能是要求前台导出word,但是前后台是分离的,图片存在后台,所以就存在跨域问题。 导出文字都是没有问题的(jquery.wordexport.js),但是导出图片就...

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