Http 如何从angular2 RC5中的API下载PDF?
前一个问题有一些很好的解决方法: 但是现在RC5已经出来了,我们可以使用arrayBuffer()。我似乎拿这个一事无成。如何从这一点变成一个漂亮的pdf blob:Http 如何从angular2 RC5中的API下载PDF?,http,pdf,angular,arraybuffer,Http,Pdf,Angular,Arraybuffer,前一个问题有一些很好的解决方法: 但是现在RC5已经出来了,我们可以使用arrayBuffer()。我似乎拿这个一事无成。如何从这一点变成一个漂亮的pdf blob: return this._authHttp.get(this.fileUrl+id) .map((res:Response) => res.arrayBuffer()) .subscribe( data => { console.
return this._authHttp.get(this.fileUrl+id)
.map((res:Response) => res.arrayBuffer())
.subscribe(
data => {
console.log(data);
var blob = new Blob([data], {type: 'application/pdf'});
console.log(blob);
saveAs(blob, "testData.pdf");
},
err => console.error(err),
() => console.log('done')
);
最终数据的大小是我预期的两倍。你知道我遗漏了什么吗?我在下载pdf文件时遇到了同样的问题。我浪费了两天的时间来修复这个问题,但最终还是成功了。您需要将responseType设置为blob
return this._authHttp.get(this.fileUrl+id ,
{ responseType: ResponseContentType.Blob })
.map((res:Response) => res.blob())
.subscribe(
data => {
console.log(data);
var blob = new Blob([data], {type: 'application/pdf'});
console.log(blob);
saveAs(blob, "testData.pdf");
},
err => console.error(err),
() => console.log('done')
);
别忘了导入ResponseContentType
希望这能帮助你谢谢你,伙计
这个黑客,改变了我的生活。。。谢谢但我做了一个轻微的改变
this._authHttp.get(URLx, { responseType: ResponseContentType.Blob })
.map((res:any) => return res) <-- this line change --!>
.subscribe(
data => {
var mediaType = 'application/pdf';
var blob = new Blob([data], {type: mediaType});
var filename = `Veiculo-Eixos-${veiculoDTO.placa}.pdf`;
// saveAs(blob, filename);
var fileURL = URL.createObjectURL(blob);
window.open(fileURL); // if you want to open it in new tab
},
error =>{
console.log(error);
});
this.\u authHttp.get(URLx,{responseType:ResponseContentType.Blob})
.map((res:any)=>返回res)
.订阅(
数据=>{
var mediaType='application/pdf';
var blob=新blob([data],{type:mediaType});
var filename=`Veiculo Eixos-${veiculoDTO.placa}.pdf`;
//saveAs(blob,文件名);
var fileURL=URL.createObjectURL(blob);
window.open(fileURL);//如果要在新选项卡中打开它
},
错误=>{
console.log(错误);
});
好极了!!responseType做到了。我使用了let blob=new blob([response[''u body']],{type:'application/pdf'});嗨,Kira,我正在尝试上面的解决方案,但是我在使用saveAs时遇到了问题。我得到了错误TS2304:找不到您需要包含的名称'saveAs'@mayowaogundele。在这样做之后,我得到了一系列错误。为此,请参阅一篇新的SO帖子@mayowaogundele您需要安装文件保护程序npm包