我使用html-pdf模块生成pdfs,使用以下代码:
var ejs = require('ejs');
var fs = require('fs');
var pdf = require('html-pdf');
var build = function (template, data) {
var html = ejs.compile(fs.readFileSync(template, 'utf8'));
html = html(data);
return html;
}
pdf.create(build('views/print_templates/pm_export_pdf.ejs',
{rows:resolve(rows, user_rows, table_rows,
subproject_rows, milestone_rows, release_rows)}), pdfconfig)
.toFile(function (err, pdf) {
if (err)
return console.log(err);
res.sendFile(pdf.filename);
});
PDFconfig
是html-pdf的配置变量。 resolve
是我自己的数据库解析函数,在这个故事中并不是很相关。
当我在MacBook Pro上的OSX 10.10本地运行时,这就像一个魅力。但是当我在我的服务器(centOS)上运行它时,我收到以下错误:
events.js:72
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)
这可能与权限有关吗?我不确定自己做错了什么..
我运行以下版本:
答案 0 :(得分:1)
为了将来目的:
我认为我必须重建我的节点模块。我想我不小心将node-modules文件夹复制到了centOS上的测试服务器上,而phantomjs已经为OSX建立了它的依赖关系。我还不确定它是如何将通讯记者丢错的,但它已经修好了。
还要确保安装了FreeType和fontconfiglib。