感谢您在这里停留。
downloadHandler(id) {
// this.isResultsLoading = true;
this.invoiceService.downloadInvoice(id).subscribe(
(data) => {
console.log(data);
saveAs(data, this.invoice.item);
// saveAs(data, this.invoice.item);
},
(err) => {
console.error(err);
//this.errorHandler(err, 'Error while downloading invoice');
}
);
}
我使用此功能进行下载,效果很好, 现在,我可以下载文件,然后打印。 我的问题是:我需要查看文件才能打印而无需下载。
非常感谢
答案 0 :(得分:0)
第1步:获取内容。
this._http.get('http://localhost:4200/')
将响应设为arrayBuffer或将blob设为josn;
this._http.get('http://localhost:4200/', { responseType: 'arraybuffer' }).
or
this._http.get('some api end point', { responseType: 'blob' as 'json' }).
第2步:创建blob对象
const myBlobPart: BlobPart = <BlobPart>res;
const file = new Blob([myBlobPart], { type: 'your media type' });
// media type can be : text/csv, application/pdf, text/plain etc.
第3步:创建指向blob对象的网址。
const fileURL = URL.createObjectURL(file);
第4步:打开网址
window.open(fileURL);
因此完整的解决方案将是这样的:
this._http.get('some api endpoint', { responseType: 'blob' as 'json'}).subscribe(res => {
const myBlobPart: BlobPart = <BlobPart>res;
const file = new Blob([myBlobPart], { type: 'your media type' });
const fileURL = URL.createObjectURL(file);
console.log(fileURL);
window.open(fileURL);
this.url = fileURL;
});