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 相关文章推荐
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
May 08 Javascript
jQuery对象和DOM对象相互转化
Apr 24 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
Jan 03 Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 Javascript
jQuery晃动层特效实现方法
Mar 09 Javascript
jquery ajax分页插件的简单实现
Jan 27 Javascript
微信小程序之电影影评小程序制作代码
Aug 03 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
vue element动态渲染、移除表单并添加验证的实现
Jan 16 Javascript
js字符串类型String常用操作实例总结
Jul 05 Javascript
vue实现防抖的实例代码
Jan 11 Vue.js
JavaScript继承的三种方法实例
May 12 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 n个不重复的随机数生成代码
2009/06/23 PHP
PHP会话处理的10个函数
2015/08/11 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
javascript 函数使用说明
2010/04/07 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python抓取京东商城手机列表url实例代码
2013/12/18 Python
简单实现Python爬取网络图片
2018/04/01 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
标准导师推荐信(医学类)
2013/10/28 职场文书
迟到检讨书800字
2014/01/13 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
2014年保育员工作总结
2014/12/02 职场文书
学校社团活动总结
2015/05/07 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis