Node.js 节点JS/Generate PDF服务器端

Node.js 节点JS/Generate PDF服务器端,node.js,pdf,html-pdf,node-html-pdf,Node.js,Pdf,Html Pdf,Node Html Pdf,我需要通过服务器端创建PDF文件。我有一个带有HTML的pug文件,它按预期工作(格式和内容都很完美)。此外,我还有一个服务,可以从pug文件中获取字符串形式的HTML。问题是我在使用节点html pdf库生成pdf时遇到了问题 let config = { format: 'Letter', orientation: 'portrait', type: 'pdf' }; pdf.create(htmlConverted, config).toBuffer((

我需要通过服务器端创建PDF文件。我有一个带有HTML的pug文件,它按预期工作(格式和内容都很完美)。此外,我还有一个服务,可以从pug文件中获取字符串形式的HTML。问题是我在使用节点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的方法。任何帮助都会受到欢迎。谢谢,我真的很感谢您的回复。

想一想,如果整体格式很小,也许使用一些CSS代码将其变大可能会有所帮助。你试过这个吗?另外,你能在这里分享代码资源吗?是的,我试过了,但我注意到问题不在于CSS,而是库本身。对我来说,解决办法是改变图书馆,现在我使用的是木偶师,并按预期工作。对于保密条款,我无法共享资源文件,对此表示抱歉。我理解,谢谢:)