当前位置: 首页 > 知识库问答 >
问题:

从Blob angular打印pdf文件时出现问题

厉熠彤
2023-03-14

我有一个Api,它以以下格式返回数据

{ 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);
    }
});

>

  • 可能是什么问题,

    有什么方法可以不打开多个窗口,按顺序打印所有文档?

  • 共有2个答案

    慕嘉运
    2023-03-14

    如果您不想使用printJS

    我面临同样的问题,但在我的情况下,我一次只需要处理一个文件。我通过将打印函数放在超时块中解决了这个问题,因此在您的情况下

            setTimeout(function(){
                oWindow.print();
            }, 1000)
    

    如果这很好,如果不是,那么您可能还需要将窗口的源设置为您创建的“blobUrl”。这应该在你退出循环后完成。

    高砚
    2023-03-14

    pdf文件需要时间来加载,这就是为什么它显示空白文档,所以我使用print-js来解决这个问题。

    如何导入

    import * as printJS from "print-js";
    

    如何使用

    const blobUrl = URL.createObjectURL(_fileInfo.blob);
    printJS(blobUrl);
    
     类似资料:
    • 问题内容: 我是JasperReports的新手,发现自己迷失了它。我在JSF中有一个webapp,我想用它来打印PDF。我已经建立了报告,并且能够成功地编译并使用我的所有参数填充它。但是,我不了解实际的输出部分。我希望它以PDF格式发送到打印机。我根本不在乎在屏幕上看到它,直接到打印机是理想的选择(从服务器是理想的选择,但是客户端也可以,因为我们可以根据需要设置客户端进行打印(这是一个内部应用程

    • 这段代码第一次可以运行得很好,但是当我第二次运行app时,它不会立即生成PDF文件。

    • 我有一个PDF文件嵌入到标准html网页中。 这目前呈现在Internet Explorer中使用Windows上的Adobe Reader插件。火狐和Chrome似乎正在使用他们内部的PDF渲染引擎。 在所有3种情况下,页面都显示在PDF内容上方可见的Foo标题。 当用户尝试打印页面(文件)时- Firefox显示正确。 我已经尝试使用PDFObject来嵌入它,并获得相同的结果 还有其他帖子推

    • 我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd

    • 本文向大家介绍python连接打印机实现打印文档、图片、pdf文件等功能,包括了python连接打印机实现打印文档、图片、pdf文件等功能的使用技巧和注意事项,需要的朋友参考一下 引言 python连接打印机进行打印,可能根据需求的不同,使用不同的函数模块。 如果你只是简单的想打印文档,比如office文档,你可以使用ShellExecute方法,对于微软office的文档、pdf、txt等有用,

    • 问题内容: 我正在建立HTML格式的PDF清单。在列表中,我想包含一个下载链接和一个打印按钮/链接。有什么方法可以直接打开PDF的“打印”对话框,而无需用户查看PDF或打开PDF查看器? 将PDF下载到隐藏的iframe中并触发使用JavaScript进行打印,这有一些变化吗? 问题答案: 根据以下评论,它不再可在现代浏览器中使用。 该问题演示了一种可能对您有所帮助的方法:静默打印嵌入式PDF 它