【发布时间】:2020-10-21 20:23:29
【问题描述】:
我正在后端生成一个 pdf 文件并将其作为流缓冲区返回到前端
对于小型 PDF,一切正常 - 一个新的浏览器选项卡打开,我可以下载生成的 pdf。但是,当我生成大型 PDF 时遇到问题,服务器请求已完成,我可以看到 blob 数据,但它没有在新选项卡中打开 PDF,因此我可以查看和下载生成的 PDF。
组件.ts
async createReport() {
let blob = await this.searchService.createReport(this.searchService.submitObj);
let fileURL = URL.createObjectURL(blob);
window.open(fileURL);
}
service.ts
async createReport(data) {
let pdfStream = await this.http.post<any>(
environment.apiUrl + 'search/create-issues-report',
data,
{ responseType: 'blob' as 'json'}
).toPromise();
return new Blob([pdfStream], { type: 'application/pdf' });
}
在打开大型 pdf 文件之前我需要进行其他设置吗?
【问题讨论】: