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判断页面网址是否有效的两种方法
Dec 11 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
Feb 02 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 Javascript
webpack公共组件引用路径简化小技巧
Jun 15 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
Sep 10 Javascript
JS模拟浏览器实现全局搜索功能
Sep 11 Javascript
Centos7 安装Node.js10以上版本的方法步骤
Oct 15 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
Oct 24 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 Javascript
Vue Element UI自定义描述列表组件
May 18 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
Protoss建筑一览
2020/03/14 星际争霸
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
PHP循环结构实例讲解
2014/02/10 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
一端时间轮换的广告
2006/06/26 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
python实现两张图片的像素融合
2019/02/23 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
python如何导入依赖包
2020/07/13 Python
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
简述数据库的设计过程
2015/06/22 面试题
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
一般纳税人申请报告
2015/05/18 职场文书
防卫过当辩护词
2015/05/21 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书