【发布时间】:2014-01-31 06:05:56
【问题描述】:
我会在 Node.js 中生成一些 PDF 文件
我会从一个 HTML 变量开始生成它。 (我用ejs生成它) 我已经安装了桥接器,并且我做了一些测试,但有些事情并不顺利。
如果我尝试从 Http:// url 生成 PDF,它可以工作。
var phantom = require('phantom');
var pdffile =__dirname+'/test.pdf';
phantom.create(function(ph) {
ph.createPage(function(page) {
page.open('http://www.google.com',function(err,status){
page.render(pdffile, function(err){
ph.exit();
});
});
});
});
如果我尝试将 HTML 放入变量中...... 这个例子有效:
var phantom = require('phantom');
var pdffile =__dirname+'/test.pdf';
var content = '<html><head></head><body><h1>Hello World</h1><p>my paragraph</p></body></html>';
phantom.create(function(ph) {
ph.createPage(function(page) {
page.set('content', content);
page.render(pdffile, function(err){
console.log(err);
ph.exit();
});
});
});
但是......我不明白为什么这个跟随不起作用
var ejs = require('ejs');
var fs = require('fs');
var phantom = require('phantom');
var pdffile =__dirname+'/test.pdf';
var str = fs.readFileSync( __dirname + '/template.ejs', 'utf8');
var params = {id:2423432};
var html = ejs.render(str, params );
var content = '<html><head></head><body>'+html+'</body></html>';
phantom.create(function(ph) {
ph.createPage(function(page) {
page.set('content', content);
page.render(pdffile, function(err){
console.log(err);
ph.exit();
});
});
});
EJS 将模板文件的内容渲染到 var 中,但 phantomjs 没有渲染任何内容。 我也没有收到错误消息,脚本停止并且没有生成 PDF 文件。
没有人可以帮助我吗?
【问题讨论】:
标签: node.js pdf pdf-generation phantomjs