我正在使用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!!'});
});
})