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 相关文章推荐
Jquery 过滤器(first,last,not,even,odd)的使用
Jan 22 Javascript
jQuery使用ajaxSubmit()提交表单示例
Apr 04 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
JS实现的数字格式化功能示例
Feb 10 Javascript
实例分析JS与Node.js中的事件循环
Dec 12 Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
Mar 19 Javascript
使用JavaScript计算前一天和后一天的思路详解
Dec 20 Javascript
Vue组件通信入门之Provide和Inject机制
Dec 29 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
Jan 05 Javascript
js抽奖转盘实现方法分析
May 16 Javascript
JavaScript parseInt0.0000005打印5原理解析
Jul 23 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开发模式(简写版)
2007/03/15 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PDO::errorInfo讲解
2019/01/28 PHP
php和asp语法上的区别总结
2019/05/12 PHP
php生成微信红包数组的方法
2019/09/05 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
详解JS函数防抖
2020/06/05 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
python实现桌面托盘气泡提示
2019/07/29 Python
详解python播放音频的三种方法
2019/09/23 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
工作决心书
2014/03/11 职场文书
拓展训练激励口号
2014/06/17 职场文书
员工手册董事长致辞
2015/07/29 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL