2017-08-24 96 views
0

我試圖做一個簡單的任務,將一個http響應下載到pdf中。我正在生成一個PDF文件,但我收到「無法打開PDF」的錯誤。如何將字節數組轉換爲pdf並下載

以下是響應的樣子。 screenshot

這就是我在做的。

let blob = new Blob([response.data], { type: 'application/pdf' }) 
FileSaver.saveAs(blob, 'foo.pdf') 
+1

的響應也不像一個PDF文件(PDF是一個文本文件,並應與'%PDF.'開始)。你是否檢查過XMLHttpRequest使用正確的URI? – K3N

+0

我不確定它是什麼。我正在嘗試顯示它的不同方式。這裏是一個小提琴我分叉並添加了迴應。也許這將有助於弄清楚它? – texas697

+0

http://jsfiddle.net/8vzz8sk9/ – texas697

回答

1

響應的字符串似乎是Base-64編碼(參考fiddle)。你可以把它用fetch()(或XMLHttpRequest()舊版本瀏覽器)解碼:

fetch("data:application/pdf;base64," + response.data) 
    .then(function(resp) {return resp.blob()}) 
    .then(function(blob) { 
    FileSaver.saveAs(blob, 'foo.pdf') 
    }); 
相關問題