我使用角度6框架。 我在那里建立了一个pdf,显示在浏览器(chrome)选项卡上。 但是保存功能不起作用。 当我单击“保存”图标时,该图标确实会闪烁,但未保存任何内容,因此不会打开任何上下文窗口。同样,右键单击会打开一个上下文菜单,但是当我单击“另存为”时,什么也不会发生。但是打印可以(也可以打印/另存为pdf)。
我无法保存pdf文件的地方是什么?
组件:
private doPdfPreview(): void {
// ...
const newPdfWindow = window.open();
this._reportService.getPdf(projectId, taskId, pageNumber).subscribe(pdfBytes => {
const file = new Blob([pdfBytes], { type: 'application/pdf' });
const fileURL = URL.createObjectURL(file);
const iframe = newPdfWindow.document.createElement('iframe');
iframe.width = '100%';
iframe.height = '100%';
iframe.frameBorder = '0';
iframe.src = fileURL;
newPdfWindow.document.body.appendChild(iframe);
},
error => {
notify({
message: 'No rendered page to display',
type: 'error',
displayTime: 0,
closeOnClick: true
});
}
);
}
服务:
getPdf(projectId: string, taskId?: number, pageNumber?: number): any {
let url = `${this._baseUrl}/${this._apiEndpoint}/${projectId}/pdf`;
if (taskId) {
url = `${url}/${taskId}`;
if (pageNumber) {
url = `${url}/${pageNumber}`;
}
}
return this._http.get(url, { responseType: 'arraybuffer' });
}