1

我正在尝试使用 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);
        });
};
4

0 回答 0