解決前端列印後臺返回的pdf的base64字串資料

qq_42820007發表於2020-11-26

實現後端返回pdf的純base64字串(沒有任何格式的base64字串)使用iframe列印內容。

將base64字串轉換成byte

function convertDataURIToBinary(base64data) {   //編碼轉換
       var raw = window.atob(base64data);//這個方法在ie核心下無法正常解析。
       var rawLength = raw.length;
       var array = new Uint8Array(new ArrayBuffer(rawLength));
       for (i = 0; i < rawLength; i++) {
           array[i] = raw.charCodeAt(i) & 0xff;
       }
       return array;
   }

生成Blob物件

function basetoBlob(base64data){
	var u8arr = convertDataURIToBinary(base64data);
	var mine = "application/pdf";//固定為pdf格式
	return new Blob([u8arr], {type: mime});
}

使用js方法將Blob物件生成一個網址路徑

var src = URL.createObjectURL(blob);

最後以iframe顯示該路徑下的檔案,實現列印邏輯就行了。

相關文章