node.js - 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();
});
}
解决方案
推荐阅读
- coverage.py - 运行目录中的所有文件以测量覆盖率
- python - 使用 Netwrokx 进行重叠社区检测
- c++ - 在 QListWidget 中添加 QMap 项目并选择该项目为活动的
- jenkins - 通过推送到 GitLab 上的特定分支来触发 Jenkins 构建
- salesforce - 将完成的 DocuSign 文档附加到 Salesforce 标准对象(不是机会)
- sql - 在 df.loc 期间保留空值
- lotusscript - Lotusscript 视图选择公式不使用
- audio - 尝试播放声音文件时出现错误
- python - findall() 返回一个列表,但它不添加列表中的元素
- python - BeautifulSoup 找不到元标记信息