从 Blob 打印 pdf 文件时出现问题 angular
Issue while printing pdf files from Blob angular
我有一个 Api returns 格式为
的数据
{ fileName: string, blob: Blob }[]
我想打印所有这些文件,所以我正在使用
_files.forEach((_fileInfo) => {
const blobUrl = URL.createObjectURL(_fileInfo.blob);
const oWindow = window.open(blobUrl, "print");
oWindow.print();
oWindow.close();
});
这会打开多重打印 windows,但在预览中显示空白文档。
但是当我以 zip 格式下载所有这些文件时,它会下载正确的 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);
}
});
可能是什么问题,
有什么方法可以在不打开多个文档的情况下按顺序打印所有文档windows?
Pdf 文件加载需要时间,这就是它显示空白文档的原因,所以我使用 print-js 解决了这个问题。
如何导入
import * as printJS from "print-js";
如何使用
const blobUrl = URL.createObjectURL(_fileInfo.blob);
printJS(blobUrl);
以防万一,您不想使用 printJS
我遇到了同样的问题,但就我而言,我一次只需要处理一个文件。我通过将打印函数放在超时块中来解决它,所以在你的情况下这将是
setTimeout(function(){
oWindow.print();
}, 1000)
如果这行得通,那就太好了,如果行不通,那么您可能还需要将 window 的源设置为等于您创建的 'blobUrl'。这应该在你退出循环后完成。
我有一个 Api returns 格式为
的数据{ fileName: string, blob: Blob }[]
我想打印所有这些文件,所以我正在使用
_files.forEach((_fileInfo) => {
const blobUrl = URL.createObjectURL(_fileInfo.blob);
const oWindow = window.open(blobUrl, "print");
oWindow.print();
oWindow.close();
});
这会打开多重打印 windows,但在预览中显示空白文档。
但是当我以 zip 格式下载所有这些文件时,它会下载正确的 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);
}
});
可能是什么问题,
有什么方法可以在不打开多个文档的情况下按顺序打印所有文档windows?
Pdf 文件加载需要时间,这就是它显示空白文档的原因,所以我使用 print-js 解决了这个问题。
如何导入
import * as printJS from "print-js";
如何使用
const blobUrl = URL.createObjectURL(_fileInfo.blob);
printJS(blobUrl);
以防万一,您不想使用 printJS
我遇到了同样的问题,但就我而言,我一次只需要处理一个文件。我通过将打印函数放在超时块中来解决它,所以在你的情况下这将是
setTimeout(function(){
oWindow.print();
}, 1000)
如果这行得通,那就太好了,如果行不通,那么您可能还需要将 window 的源设置为等于您创建的 'blobUrl'。这应该在你退出循环后完成。