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 相关文章推荐
延时重复执行函数 lLoopRun.js
May 08 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
Sep 20 Javascript
js字符编码函数区别分析
Dec 28 Javascript
jquery防止重复执行动画避免页面混乱
Apr 22 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
解决js函数闭包内存泄露问题的办法
Jan 25 Javascript
js+css3实现旋转效果
Jan 20 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 Javascript
vue+Element-ui实现分页效果实例代码详解
Dec 10 Javascript
微信小程序封装分享与分销功能过程解析
Aug 13 Javascript
浅谈layer弹出层按钮颜色修改方法
Sep 11 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
PHP概率计算函数汇总
2015/09/13 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
js DataSet数据源处理代码
2010/03/29 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
13个最常用的Python深度学习库介绍
2017/10/28 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
用python发送微信消息
2020/12/21 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
初婚未育未抱养证明
2014/01/12 职场文书
车队司机自我鉴定
2014/03/02 职场文书
冬季施工防火方案
2014/05/17 职场文书
节约能源标语
2014/06/17 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
redis 查看所有的key方式
2021/05/07 Redis