2015-06-10 2 views
4

В моем приложении, когда пользователь проходит тест, автоматически будет создан диплом (pdf). Это достигается с помощью html-pdfnode-module, который извлекает html-файл и превращает его в pdf.html-pdf с шаблоном ejs

var fs = require('fs'), 
    pdf = require('html-pdf'), 
    path = require('path'), 
    ejs = require('ejs'); 


var html = fs.readFileSync('./phantomScripts/certificate.html', 'utf8'); 
var options = { filename: 'businesscard.pdf', format: 'A4', orientation: 'portrait', directory: './phantomScripts/',type: "pdf" }; 

pdf.create(html, options).toFile(function(err, res) { 
    if (err) return console.log(err); 
     console.log(res); 
    }); 

Это преобразование, из html в pdf, прекрасно работает и выглядит очень хорошо. Теперь я хочу сделать template немного более динамичным, что означает, что в зависимости от пользователя их имя отображается в pdf.

У меня есть работа с ejs, чтобы создать шаблон электронной почты, поэтому я думал, что моя проблема может быть решена с этим, но, как уже упоминалось, я не так много работаю с ejs и не могу понять, как отправить data в мой файл ejs?

ответ

4
ejs.renderFile('./path/to/template-file.ejs', {data : {firstname: 'Tom', lastname: 'Hanks'}, function(err, result) { 
    // render on success 
    if (result) { 
     html = result; 
    } 
    // render or error 
    else { 
     res.end('An error occurred'); 
     console.log(err); 
    } 
}); 

Я заменил мой var html = fs.readFileSync('./phantomScripts/certificate.html', 'utf8'); код с указанным кодом, и она работает, как я хочу, чтобы это.

+0

Как мы можем добавить изображение в файл template-file.ejs? например, изображение находится внутри uploads/image.png –

Смежные вопросы