【发布时间】:2018-11-13 22:40:00
【问题描述】:
app.get('/individual_report/:athlete_id', function(req, res) {
database.select('*').from('participants').then(data => {
if (data.length) {
res.render('individual_report', {
name: data
});
const hbsfile = fs.readFileSync(__dirname + '/../public/views/individual_report.hbs', 'utf8');
const document = {
template: hbsfile,
context: {
options: {
dataForPDF: data,
ssl_logo: '../public/static/assets/image/white_ssl_logo.png',
},
},
path: __dirname + '/../public/reports/' + data[0].first_name + " " + data[0].last_name + '\'s scores.pdf'
};
pdf.create(document, options).then(res => {
console.log(res)
}).catch(error => {
console.error(error)
});
} else {
res.json({
msg: 'Invalid athlete ID'
});
}
}).catch(err => res.sendStatus(400));
});
上面的 node express 路由渲染了一个 html 页面,并且还使用 HandleBars .hbs 模板生成了一个 PDF。
<img class="ssl_logo" src="{{{options.ssl_logo}}}" alt="logo.png" width="120" height="50" />
这是我在 .hbs 文件中应该显示徽标图像文件的内容。
图像不会在浏览器和 PDF 文件中呈现。但是,alt 属性会在浏览器和 PDF 中呈现。我查看了控制台日志,在源属性中得到了这个未知数:
img class="ssl_logo" src(unknown) alt="logo.png" width="120" height="50"
我正在使用 dynamic-html-pdf 节点包来生成此报告,任何人都可以向我推荐一些可能使它起作用的东西吗?谢谢。
【问题讨论】:
标签: image express pdf-generation