我知道外面有很多库,但似乎没有一个与我的场景完全匹配。所以我希望在这里得到一些建议..。
技术:我在后端使用Node.js on Express.js,前端使用html/css/js。浏览器支持IE8和up、chrome、FF和其他现代浏览器。
我需要做的是:让用户点击一个"to pdf“按钮,然后将DOM的一部分转换成pdf。当后端对另一个应用程序进行API调用时,会动态生成DOM的这一部分html。CSS是静态的。
除此之外,我有很大的自由去做我想做的任何事情,只要我不需要向第三方发送明文数据等等。
有什么推荐的方法吗?
更新:查看wkhtmltopdf
发布于 2012-08-01 00:21:51
基本上,这就是我最后要做的
console.log("before");
fs.writeFile(html_filename, html, function (err) {
if (err) {res.writeHead(400); res.end("" + err); return;}
console.log("wrote html fine; now converting");
exec('wkhtmltopdf ' + html_filename + ' ' + pdf_filename, function (err, stdout, stderr) {
if (err) {res.writeHead(400); res.end("" + err); return;}
console.log("converted; now reading");
fs.readFile(pdf_filename, function (err, data) {
if (err) {res.writeHead(400); res.end("" + err); return;}
console.log("read fine; now serving");
res.writeHead(200, {"content-type" : "application/pdf"});
res.end(data);
});
});
});它有点难看,因为它需要创建一个文件,然后转换它,然后服务它,最后删除这两个文件。我怀疑这里存在可伸缩性问题。同样,wkhtmltopdf似乎对osx不友好。不过,linux上没有这样的问题。
发布于 2012-07-31 01:10:56
试试wkhtmltopdf。您可以轻松地查看Rails驱动程序的当前实现,并将其应用于节点和表达式。您基本上调用一个命令行应用程序,它将被转换为PDF使用您的打印CSS。
https://stackoverflow.com/questions/11694408
复制相似问题