Javascript 从Blob agnular打印pdf文件时出现问题
我有一个Api,它以Javascript 从Blob agnular打印pdf文件时出现问题,javascript,angular,blob,Javascript,Angular,Blob,我有一个Api,它以 { fileName: string, blob: Blob }[] 我想打印所有这些文件,所以我使用 _files.forEach((_fileInfo) => { const blobUrl = URL.createObjectURL(_fileInfo.blob); const oWindow = window.open(blobUrl, "print"); oWindow.print();
{ fileName: string, blob: Blob }[]
我想打印所有这些文件,所以我使用
_files.forEach((_fileInfo) => {
const blobUrl = URL.createObjectURL(_fileInfo.blob);
const oWindow = window.open(blobUrl, "print");
oWindow.print();
oWindow.close();
});
这将打开多个打印窗口,但在预览中显示空白文档
但是当我下载所有这些文件时,它会下载正确的PDF文件
// add files to zip
files.forEach((_fileInfo) => {
zip.file(_fileInfo.fileName, _fileInfo.blob);
});
// download and save
return zip.generateAsync({ type: "blob" }).then((content) => {
if (content) {
return saveAs(content, name);
}
});
Pdf文件需要时间加载,这就是为什么它显示空白文档,所以我用它来解决这个问题 如何导入
import * as printJS from "print-js";
如何使用
const blobUrl = URL.createObjectURL(_fileInfo.blob);
printJS(blobUrl);
在这种情况下,您不想使用printJS 我面临着同样的问题,但在我的情况下,我一次只需要处理一个文件。我通过将print函数放入一个超时块来解决它,所以在您的情况下
setTimeout(function(){
oWindow.print();
}, 1000)
如果这样做很好,如果不行,那么您可能还需要将窗口的源设置为您创建的“blobUrl”。这应该在您退出循环后完成。它是否适用于单个文件,没有循环?否,它在预览中显示空白文档您是否可以指定
\u文件集合,例如,如何获取\u fileInfo
的值?@AlenaKastsiukavets,printJs完成了这项工作,我的意思是,现在它显示了正确的PDF预览,现在唯一的问题是合并PDF,是否有任何方法可以在一次单击中打印多个PDF文件。