mpdf 不呈现链接样式表中的样式

mpdf not rendering styles from linked stylesheet

我正在使用 mpdf 从 HTML 页面生成 pdf,但样式表无法正常工作。这是我的 HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="http://swiftdigital.ltd.uk/pdf.css">
</head>
<!-- END HEAD -->

<body id="the_pdf">

<div id="wrapper">
    <img src="http://via.placeholder.com/350x150" alt="Logo" id="logo">
</div>

</body>

</html>

如果您滚动到 CSS 的底部,您会看到一些应该应用的样式,例如包装纸周围应该有红色边框,徽标也应该如此,但 none这些正在应用中。

我正在这样生成 PDF:

$mpdf = new Mpdf;
$mpdf->SetDisplayMode('fullpage');
$mpdf->WriteHTML($html, 0);
$mpdf->Output(pdf.pdf','F');

有人知道问题出在哪里吗?

mPDF 不支持 body 元素上的 id。从 css 选择器中删除 body#the_pdfbody#the_pdf,您的样式将被应用。

当我添加例如时,您的样式表中的其他 Bootstrap 样式(特别是 font-family)被正确应用。示例代码的标题和段落。

参见 mPDF 联机手册中 supported HTML attributes 的页面。

您可以像这样使用 WriteHtml() 加载样式 sheet:

$stylesheet = file_get_contents('style.css');

$mpdf->WriteHTML($stylesheet,\Mpdf\HTMLParserMode::HEADER_CSS); $mpdf->WriteHTML($html,\Mpdf\HTMLParserMode::HTML_BODY);