我正在尝试使用 html-pdf 包将此处“returnDefaultOfferLetter”函数返回的 HTML 代码转换为 PDF 缓冲区(我将用于在邮件中发送附件)。所以,问题是它可以在本地主机上运行,但在 AWS 弹性 beanstalk 服务器上它会抛出断言错误。所以经过一些研究,我知道我需要指定 phantomPath。我尽我所能,但我没有任何解决办法。
顺便说一句,它在 AWS 上运行前一周,所以现在不知道出了什么问题。帮助我找到一些解决方案或建议我将 HTML 转换为 pdf BUFFER的任何方法或包。(请不要忽略缓冲区)
const htmlToBase64Pdf = (req, res) => {
const promise = new Promise((resolve, reject) => {
const offerLetterHTML = returnDefaultOfferLetter(req.body).toString(
"utf8"
);
const pdfOptions = {
format: "A3",
phantomPath: "../../node_modules/phantomjs-prebuilt/bin/phantomjs",
};
pdf.create(offerLetterHTML, pdfOptions).toBuffer(function (
err,
buffer
) {
if (err) {
// console.log("err", err);
reject(err);
} else {
// console.log("buffer", buffer);
const base64Attachment = buffer.toString("base64");
resolve(base64Attachment);
}
});
});
promise
.then((resp) => res.send(resp))
.catch((e) => {
res.send(e);
});
};