节点包“ dynamic-html-pdf”未将CSS应用于生成的pdf

时间:2018-11-08 20:39:59

标签: html css pdf pdf-generation dynamic-html

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,
          },
        },
        path: "./test.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));
});

我有一条路线可以渲染车把模板并同时生成该模板的pdf。我所生成的pdf的问题是没有打印CSS应用于它。

在hbs中,我链接了该打印CSS,并且链接正常。我通过将打印介质更改为屏幕进行了测试。

<link rel="stylesheet" href="/../static/assets/css/style_print_individual_report.css" type="text/css" media="print" />

为了让我将打印CSS应用于pdf,我需要将带有@media print {}的标签放在hbs模板中,我认为它并不整洁。

所以问题是dynamic-html-pdf包是否读取打印CSS,并且有某种方法可以在模板文件中以某种方式包含不带样式标签的CSS?

1 个答案:

答案 0 :(得分:0)

据我所知,它不接受外部CSS。我使用了内联CSS。

相关问题