NodeJS 将.docx文档转换为pdf文档并附加到电子邮件

zpqajqem  于 2022-12-18  发布在  Node.js
关注(0)|答案(1)|浏览(242)

bounty将在2天后过期。回答此问题可获得+50的声誉奖励。Deji James正在寻找来自声誉良好来源的答案

我现在正在运行一个云函数来生成一个.docx文档,然后使用nodemailer将其交付给用户,下面是使用docxtemplater生成.docx文件的代码:

const file_name = 'template.docx';// this is the file saved in my firebase storage
  const templateRef = await admin.storage().bucket()
      .file(file_name);
  const template_content = (await templateRef.download())[0];
  const zip = new PizZip(template_content);

  let doc;
  try {
    doc = new Docxtemplater(zip, { linebreaks: true });
  } catch (error) {
    // Catch compilation errors (errors caused by the compilation of the template : misplaced tags)
    errorHandler(error);
  }

  doc.setData({
    name: data.name
  });

  try {
    doc.render();
  } catch (error) {
    errorHandler(error);
  }

  const contentBuffer = doc.getZip().generate({ type: "nodebuffer" });

我现在要做的是将contentBuffer转换为PDF文件,然后将其附加到电子邮件中。我尝试使用PDF make,但它生成了一个空白的PDF。有没有办法可以使用任何PDF生成器来完成此操作?

vyswwuz2

vyswwuz21#

通过快速搜索,我在Docxtemplater的文档中找到了以下信息:

转换为PDF

不能用docxtemplater将docx转换为PDF,...有很多工具可以完成这种转换。
第一种是使用libreoffice headless,它允许您从docx文档生成PDF:
你只需要跑:

libreoffice --headless --convert-to pdf --outdir . input.docx

这会将input.docx文件转换为input.pdf文件。
如果第一个选项的结果不能满足您的需要,还可以选择PDFtronAspose

相关问题