NodeJS-将formData保存为PDF文件并附加到电子邮件中

时间:2018-08-25 22:33:06

标签: javascript node.js angular nodemailer

我正在使用jsPdf生成角度为2的PDF文件。我想将此文件发送到节点js服务器并存储在某些服务器位置。保存文件后,我想使用Nodemailer将其附加到电子邮件并发送电子邮件。

我能够通过formData将文件从angula2发送到Nodejs服务器,但是我不确定如何将表单数据保存在PDF文件中。在服务器上,文件被保存到临时位置。我想将其保存到指定位置。

我现在有两个问题: 1.如何将收到的表格数据保存到特定位置的pdf文件中。 2.如何使用nodeMailer将此文件附加到电子邮件。

客户代码:-

public onGeneratePDF(): void {
//this.invoiceData = param.data;

const doc = new jsPDF('p','pt','a4');
let content = this.invoicePDF.nativeElement;

let specialElementHandler = {
  '#editor': function (element, renderer) {
    return true;
  }
};

setTimeout(()=>{
  doc.fromHTML(content.innerHTML, 15, 15, { 
    'width': 200, 
    'elementHandlers': specialElementHandler 
  }, function() { 

      var data = new Blob([doc.output()], {
        type: 'application/pdf'
      });

      var formData = new FormData();
      formData.append("pdf", data, "myfile.pdf");
      var request = new XMLHttpRequest();
      request.open("POST", URL); // Change to your server
      request.send(formData);
    //doc.save('D:/' + new Date() + '.pdf'); 
  })}, 0);
  }

服务器代码:-

module.exports.uploadDocument = function(req, res) {

form.parse(req, function(err, fields, files) {
    console.log("File received:\nName:"+files.pdf.name+"\ntype:"+files.pdf.type);
});

form.on('end', function() {
    console.log(this.openedFiles[0].path);
           res.status(200).json({ success: false, message: 'Thank you!!'});
});
})

0 个答案:

没有答案