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面向对象编程(一) 实例代码
Jun 25 Javascript
使用javascript创建快捷方式的简单实例
Aug 09 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 Javascript
jQuery aminate方法定位到页面具体位置
Dec 26 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 Javascript
Javascript生成带参数的二维码示例
Oct 10 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
用Node编写RESTful API接口的示例代码
Jul 04 Javascript
通过扫小程序码实现网站登陆功能
Aug 22 Javascript
Angular8 简单表单验证的实现示例
Jun 03 Javascript
jQuery实时统计输入框字数及限制
Jun 24 jQuery
详解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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
一个显示效果非常不错的PHP错误、异常处理类
2014/03/21 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
vue-rx的初步使用教程
2018/09/21 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python素数检测的方法
2015/05/11 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
python实现猜单词游戏
2020/05/22 Python
python是怎么被发明的
2020/06/15 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
Python截图并保存的具体实例
2021/01/14 Python
django使用多个数据库的方法实例
2021/03/04 Python
好矿嫂事迹材料
2014/01/21 职场文书
新三好学生主要事迹
2014/01/23 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
失职检讨书大全
2015/01/26 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书