Wkhtmltopdf print-media-type仅使用@media print,而忽略其余内容

2022-09-23 00:00:00 wkhtmltopdf html css

我有一个使用一个css文件的html文件。在最底部的这个文件中,我将其用于仅需要应用于页面的打印机版本的样式

@media print{
   ....print styles here...
}

当我调用wkhtmltopdf--print-media-type input.html output.pdf时,它使用仅位于@media print附件中的样式呈现pdf,并忽略未指定@media类型的其余样式

这是正常的吗,还是我做错了什么?我是否需要指定在@media print内打印的所有样式?


解决方案

wkhtmltopdf有一个可以传递的参数--print-media-type。以下是使用NReco的C#代码示例(仅用于说明目的),但参数的工作方式应该完全相同:

        var converter = new NReco.PdfGenerator.HtmlToPdfConverter();
        converter.CustomWkHtmlArgs = "--print-media-type";
        var pdfBytes = converter.GeneratePdf(html);
        return pdfBytes;

这对我在C#中使用NReco使用打印媒体CSS很好,而且它还考虑了不在@media块中的任何CSS,例如h3font-size。尝试更改文本大小或类似内容,并查看更改是否反映出来。

相关文章