【发布时间】:2017-09-13 08:48:17
【问题描述】:
我希望使用 express 将网页的 pdf 版本直接呈现给浏览器。 express.render() 之类的东西只会将页面呈现为 pdf
我找到了一个可以将 HTML 或 URL 转换为 pdf 的模块
https://github.com/marcbachmann/node-html-pdf
我需要知道的是如何直接在 HTTP 路由处理程序中使用来自该库的响应来响应带有 PDF 的请求,我不想存储 PDF,我只想动态渲染它,并将其作为缓冲区或流返回给浏览器
这是模块提供的基本 API:
var pdf = require('html-pdf');
pdf.create(html).toFile([filepath, ]function(err, res){
console.log(res.filename);
});
pdf.create(html).toStream(function(err, stream){
stream.pipe(fs.createWriteStream('./foo.pdf'));
});
pdf.create(html).toBuffer(function(err, buffer){
console.log('This is a buffer:', Buffer.isBuffer(buffer));
});
我想使用其中一种方法流或缓冲区并将其包装在像这样的路由处理程序中:
router.get('invoice/pdf', function(req, res) {
res.status(200).send(..pdf data);
});
【问题讨论】: