首页 > 解决方案 > html-to-pdf PDF 文件在作为响应发送时损坏

问题描述

请不要标记此重复项,因为我没有看到任何有关我的问题的帮助材料或问题。

我正在使用 Node.Js 包将 html 模板转换为 PDF 文件,然后通过电子邮件将其发送给用户并让他立即下载副本。Node.Js 代码如下

 html_to_pdf.generatePdf(file, options).then((pdfBuffer) => {
                    let attachments = [
                        {
                            filename: "user01-File.pdf",
                            content: pdfBuffer,
                            contentType: "application/pdf"
                        }
                    ];

                    require("../myutils").Emailer.sendEmail(
                        "useremail@somedomain.com",
                        "Here is Your File",
                        "theemailtemplate.html",
                        { replacementName: replacementValue },
                        attachments
                    );

                    res.send({
                        content: pdfBuffer
                    });
                });

上面的函数读取一个 PDF 文件,当 pdfBuffer 准备好时,它将文件作为电子邮件发送给用户,为了立即下载,还将 pdfBuffer 作为响应发送给客户端。问题是电子邮件正确显示 PDF,但下载的文件已损坏。下载文件的客户端代码如下

DownloadCertificate(): void {
        this._apiService
            .GetBinary(
                {},
                `user/1/files/1`
            )
            .subscribe((_data) => {
                var file = new Blob([_data], { type: "application/pdf" });
                var fileURL = URL.createObjectURL(file);
                var a = document.createElement("a");
                a.href = fileURL;
                a.target = "_blank";
                a.download = "yourFile.pdf";
                document.body.appendChild(a);
                a.click();
            });
    }

标签: node.jsangularpdfpdf-generationhtml-to-pdf

解决方案


推荐阅读