js生成word中圖片處理


首先功能是要求前台導出word,但是前后台是分離的,圖片存在后台,所以就存在跨域問題。

導出文字都是沒有問題的(jquery.wordexport.js),但是導出圖片就存在問題了:

        圖片是以鏈接形式存到word中,這樣如果是需要vpn的網站就會存在生成的word在沒有vpn的情況下打不開,有vpn的情況下必須啟用編輯才能加載出來圖片。

解決辦法:將圖片轉換成Data URL格式,再導出。

詳細代碼如下所示:

 1 function changeImgToDataurl(){
 2 
 3    var charImg = document.all("exportdom").getElementsByTagName("img"); 
 4     var imgURLs = ""; 
 5     for (var i = 0; i < charImg.length; i++) { 
 6          var imgURL = charImg[i].currentSrc; 
 7          getBase64(imgURL,charImg[i]);
 8     } 
 9 }
10 function getBase64(url,charImg){
11         var Img = new Image();
12         Img.crossOrigin = "Anonymous";//跨域必須使用,且后台也得設置允許跨域
13         dataURL='';
14         Img.src=url;
15         Img.onload=function(){ //要先確保圖片完整獲取到,這是個異步事件
16             var canvas = document.createElement("canvas"), //創建canvas元素
17             width=Img.width, //確保canvas的尺寸和圖片一樣
18             height=Img.height;
19             canvas.width=width;
20             canvas.height=height;
21             canvas.getContext("2d").drawImage(Img,0,0,width,height); //將圖片繪制到canvas中
22             dataURL=canvas.toDataURL('image/jpg'); //轉換圖片為dataURL
23             condataurl?condataurl(dataURL,charImg):null; //調用回調函數
24         };
25 } 
26 
27 function condataurl(dataURL,charImg){
28     charImg.src=dataURL;
29     //console.log(charImg);
30 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM