0

我需要通过服务器端创建 PDF 文件。我有一个带有 HTML 的哈巴狗文件,它按预期工作(格式和内容都很完美)。另外,我有一项服务可以从字符串中的 pug 文件中获取 HTML。问题是我在使用 node-html-pdf 库生成 PDF 时遇到问题。

  let config = {
    format: 'Letter',
    orientation: 'portrait',
    type: 'pdf'
  };

 pdf.create(htmlConverted, config).toBuffer((errConvertingHtml, buffer) => {
    if (errConvertingHtml) {
      this.logError(errConvertingHtml, null, `${this.className} createPDF`);
      return this.returnResult(errConvertingHtml, false, null);
    } else {
      const filename = 'Invoice' + '.pdf';
      const base64PDF = buffer.toString('base64');
      const email = new models.EmailModel();
      email.to.email = order.email;
      email.to.name = order.full_name;
      email.template_id = subscriptionTemplate.value;
      email.dynamic_template_data = dynamic_data;
      email.attachments = [
        {
          filename: filename,
          content: base64PDF,
          type: 'application/pdf',
          disposition: 'attachment'
        }
      ];

      let mailIntegration = new integrations.MailIntegration();
      mailIntegration.SendNow(email);
    }
  });

此代码有效,但电子邮件中的 PDF 附件格式不正确,它真的很小。我可以使用另一个库或另一个实现,我对此没有任何问题。对此代码有什么建议或建议吗?我一直在寻找另一个库,但老实说,我还没有找到将 HTML 字符串转换为 PDF,然后将 PDF 转换为缓冲区,然后再转换为 base64 的东西。任何帮助都会受到好评。谢谢,我非常感谢您的回复。

4

0 回答 0