Search code examples
phpmpdf

mpdf not rendering styles from linked stylesheet


I'm using mpdf to generate a pdf from an HTML page but the stylesheet isn't working. Here is my 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>

If you scroll to the bottom of the CSS you will see a few styles that should be applied, for example wrapper should have a red border around it and so should the logo but none of these are being applied.

I am generating the PDF like so:

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

Anyone know what the problem is?


Solution

  • mPDF does not support id on body element. Remove body#the_pdf and body#the_pdf from your css selectors and your styles will be applied.

    Other Bootstrap styles (specifically font-family) from your stylesheet are being applied correctly when I add eg. a heading and a paragraph to your example code.

    See a page on supported HTML attributes in the mPDF online manual.