我正在尝试使用html-pdf包将此处“ returnDefaultOfferLetter”函数返回的HTML代码转换为PDF缓冲区(将用于发送邮件中的附件)。因此,问题在于它可以在localhost上运行,但在AWS Elastic beantalk服务器上会抛出ASSERTION ERROR。因此,经过一些研究,我知道需要指定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);
});
};