1. 程式人生 > 實用技巧 >IE瀏覽器與PDF檔案

IE瀏覽器與PDF檔案

pdf檔案在瀏覽器預覽有很多方式:

1、ifream:支援base64,blob,url

2、pdf.js外掛可以支援

3、vue-pdf可以支援

2和3的方式都是使用外掛的方式,網上資料還是比較齊全的有興趣可以去看看動手實踐一下

  url預覽和url轉base64略過

  base64檔案可以通過下面的方法將檔案轉換為blob格式

dataURItoBlob(dataURI) {
    var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; // mime型別
    var byteString = atob(dataURI.split(',')[1]); //base64 解碼
    var arrayBuffer = new ArrayBuffer(byteString.length); //建立緩衝陣列
    var intArray = new Uint8Array(arrayBuffer); //建立檢視

    for (var i = 0; i < byteString.length; i++) {
        intArray[i] = byteString.charCodeAt(i);
    }
    return new Blob([intArray], {type: mimeString});
}

  blob格式的檔案流可以使用 window.URL.createObjectURL()的方法轉換為blob連結來進行展示。

但是以上的方法只有url連結可以在IE瀏覽器中預覽,base64和blob都不行,base64和blob IE不支援,且blob轉url連結的方法ie也不支援,可謂奇葩中的奇葩。

ie瀏覽器想要預覽檔案流我是沒有找到可行的辦法的,只有把檔案流轉換為blob格式後使用

window.navigator.msSaveOrOpenBlob(blob,fileName) 方法,將檔案流下載到本地然後讓使用者自己預覽這一條路子