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 相关文章推荐
ExtJs之带图片的下拉列表框插件
Mar 04 Javascript
查看大图功能代码jquery版
Nov 05 Javascript
js加载之使用DOM方法动态加载Javascript文件
Nov 08 Javascript
JavaScript对象数组的排序处理方法
Oct 21 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
微信小程序商品详情页规格属性选择示例代码
Oct 30 Javascript
详解angularjs实现echart图表效果最简洁教程
Nov 29 Javascript
详解小程序不同页面之间通讯的解决方案
Nov 23 Javascript
Node.js 在本地生成日志文件的方法
Feb 07 Javascript
JQuery表单元素取值赋值方法总结
May 12 jQuery
js实现磁性吸附的示例
Oct 26 Javascript
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
详解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 cookie使用方法学习笔记分享
2013/11/07 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
js几个验证函数代码
2010/03/25 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
jqTransform美化表单
2015/10/10 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
Python 爬虫的工具列表大全
2016/01/31 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
用Python读取几十万行文本数据
2018/12/24 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
Python assert关键字原理及实例解析
2019/12/13 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
给交警的表扬信
2014/01/12 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
《乌塔》教学反思
2014/02/17 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android