客户端(使用html2pdf包):
'click #testClick' (event) {
event.preventDefault();
var element = document.getElementById('testReport');
var opt = {
jsPDF: {
orientation: 'landscape'
}
}
html2pdf().from(element).set(opt).outputPdf().then((result) => {
Meteor.call('testPDF', result, function(error, res) {
if (error) {
console.log(error.message);
} else {
console.log("email sent");
}
});
});
}
服务器方法:
testPDF: function(data) {
fs = Npm.require('fs');
base64String = new Buffer(data).toString('base64');
let dir = process.cwd();
let fileName = 'file.pdf'
fs.writeFile(dir + fileName, base64String, 'base64', function(err, res) {
if (err) {
console.log('Err ', err);
}
});
//Want this to work, but attachment is not working
// Email.send({
// to: "test@test.com",
// from: "noreply@something.com",
// subject: "PDF",
// html: '<body><h1>Hello</h1></body>',
// attachments: [
// {
// filename: fileName
// }
// ]
// });
}
它实际上确实创建了PDF文件,但是我无法打开它。我收到一个损坏的错误。如果我在html2pdf包中使用.save()方法,那么该方法有效,并且可以在浏览器中下载.pdf。基本上,我只是试图从HTML元素创建.PDF并通过电子邮件发送...