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 实现的页面滚动时浮动窗口控件
Jul 10 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
Apr 03 Javascript
JQuery显示隐藏页面元素的方法总结
Apr 16 Javascript
jquery实现的缩略图预览滑块实例
Jun 25 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
Feb 14 Javascript
深入理解node exports和module.exports区别
Jun 01 Javascript
BootStrap中的表单大全
Sep 07 Javascript
js选项卡的制作方法
Jan 23 Javascript
javascript内存分配原理实例分析
Apr 10 Javascript
JS document对象简单用法完整示例
Jan 14 Javascript
JS错误处理与调试操作实例分析
Apr 13 Javascript
原生Js 实现的简单无缝滚动轮播图的示例代码
May 10 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和ACCESS写聊天室(一)
2006/10/09 PHP
php中将网址转换为超链接的函数
2011/09/02 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
用js实现随机返回数组的一个元素
2007/08/13 Javascript
js中cookie的使用详细分析
2008/05/28 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
JavaScript 事件系统
2010/07/22 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
vue组件间通信解析
2017/03/01 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
详细解读tornado协程(coroutine)原理
2018/01/15 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
python2.7实现邮件发送功能
2018/12/12 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
直接有效的自我评价
2014/01/11 职场文书
门诊手术室工作制度
2014/01/30 职场文书
工作态度检讨书
2014/02/11 职场文书
幼儿园老师寄语
2014/04/03 职场文书
学习党章心得体会2016
2016/01/15 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS