I’m using DOMPDF 2.0.3 to generate a PDF file based on an HTML content but whenever I try to use one of the CSS properties “display” or “position”, or use DATA URI as the “src” attribute of an img tag, I have the following error: “PHP Fatal error: Uncaught DompdfException: No block-level parent found. Not good.”
So for example, with the following HTML (that I store in a file called “template.html”):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>DomPDF</title>
<style>
body {padding-left: 20px;padding-right: 25px;font-family: roboto;}
h2 {font-size: 13px;color: #000;}
p {font-size: 11px;}
#Header>* {display: inline-block;width: 50%;}
</style>
</head>
<body>
<div id="Header">
<h1>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAArCAMAAAAKVjeAAAAC31BMVEUAAAAAAAAAgIBVVVVAQEAzMzMrVVVJSUlAQEA5OVUzTU0uRkZAQEA7O043SUkzRERAQFA8PEs5R0c2Q0MzQE09PUk6RkY3Q041QEo9PUc7RUU5Qkw3QEk1PkY8RE06Qko4QEg2PkY8REs6Qkk5QEc3Pkw2Q0o7QUg5QEY3Q0k7QUc6QEs5Pko3Q0g8QUc6QEo5Pkk4Qkc3QUs7QEo6Q0g5Qkc4QUo7QEk6Q0g5Qks4QUk6Qko5QUk4QEg7Q0s6Qkk5QUg4QEc3Q0o6Qkk5QUg5QEo4Qkk7QUg6QUc5QEo4Qkk4QUg6QUo5QEk5Qkg4QUg6QUo6QEk5Qkg4QUo4QEk6QEg5Qkg5QUo4QEk6QEg6Qko5QUk4QEg4QEg6Qko5QUk5QEg6Qkk6QUk5QEg4Qko4Qkk6QUg5QEo5Qkk4Qkk6QUg5QEo5Qkk4QUo6QEk5QUg4QUk6QEk5Qkg5QUo4QUk4QEk6Qkg5QUk5QUk4QEg6Qko5QUk5QUk4QEg6Qkk6QUk5QUg5QEo4Qkk6QUk5QUo5QEk4Qkk6QUg5QUo5QEk5Qkk4QUo6QUk5QEk5QUg6QUk5QEk5QUo5QUk4QUk6Qkg5QUo5QUk4QUk6Qko5QUk5QUg4Qko6QUk5QUk5QUo4Qkk6QUk5QUg5QUo5Qkk4QUk5QUo5QEk5Qkk5QUg6QUk5QEk5Qkk5QUo4QUk5QEk5QUk5QUk6QEk5QUo5QUk4QEg5QUk5QUk5QUk5QEo6QUk5QUk5QUg5QEk4QUk5QUk5QUo5QEk5QUk6QUk5QUk5Qkk5QUk4QUo5QUk5Qkk5QUk5QUk5QUk5Qkk5QUo5QUk6QUk5Qkk5QUk5QUk5QUk5QUk5QUk6QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk6QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUk5QUn///8/3AdpAAAA83RSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCorLC0uLzAxMjM0NTY3ODk6Oz4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZWZnaGlqa2xtbm9wcnN1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJaXmJmam5ydnp+goqOkpaanqKmqq6ytrq+wsbKztLW2uLm6u7y+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d/g4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f51rtrrAAAAAWJLR0T0MtUrTQAABupJREFUaN7tmftfVEUUwGd5bAiI4pIriiSoQeYTJQVRVAQfqZiJmvjAV6EkKvjqYaiJ+QILyFLRSFMMH5komaj5LF8p5TPRhBUUEBF2/oHOmbl39u66S7Htx9rPx/mBuWfO3JnznZ0558yFkOflf1+0k5Nm+ts/hmruIwoly1Vw+XvYJcgCysseFRMH/0xpdW4b++PwrZVA6EgU5/Lnsm52B5Ikc9DtIAXLWEVqewNZL0BOgLRRSIPtDWSrMP0HkM4L6SN7A9krTF8I0h9CWm7acUx8fPyr1s3h2uNF2xnsFdbaXLPDPdnyYg2I5dTo6CvLRWicYdXUXYtpzSRbcSQ8pvp01dPto2XD/wwFyUdw3HS3HcgheLOqsW04guvQuolPB/Wb2F5399cVPii+K3M86kdsB/IbjuhnG5CFzLyvTZvbX6D09Ohmsti8WOI43p3YEORjePOcyjYgM5l9GYoWd61/1PpqSlc6iibNEUofZE4YGWY28bIeRP3+8WwfGx2RFqVgxpNgIUef1PO13yyaXMZfh6CosTiEEsR/WEw/5SFy7hoVahxBm0XEDDVvvKbfQMVCacKiurvUZ3nnIeF4vNShg0MbMflg+alIoV0un4WK5ih2WLW/8Cymjlvq2QAGkGGn8dXHm3wljedKXKbS+DidTreNtQRur8EuhfykJUL7XkL8oNJ1zMbc4fxYPlHgXjy7ulQ08RJoo7FxGTxsJKQbdg86A/rKeWQCOteKFCcTmyKEc2LzJtdJ0h03pu7yRmQTyyCOGfLL5QOZosN1ScZDvY+5wiqpRb8MDV4ET4cJaYsttyVNDv6Ancok6byGh7AYfHsNT5eCUVHK9d8pzVWUgwIkCaSJQvoQlT3PoddKdbEEskZ0p1U9QPa+RRUFQQbUGuT5JiCifA6KAiFtsgBiWkYY21QtFDMJcTIY0hd0fR7z5zxH8yChesW4F6DTZnz4cerYDbUSiOsNRY+aV0xBau7wDdCHeOBQB+YW0rJkV0sgBdklPFxnF2K12zia14l54mAvGmbtBMdW3idPBR0J5FvUrW+rDscfjr5OtGh/lgN0GFrLQeKYA++lDtjCLmwmIKubEa8sfMglvljNdnCawzyMWZBl8Boue4mWkC9x8xvb9IswvZfywNC2hEQK4YhZEPUjbhzkPHj+Msk4+PuQe7CdHGQXVL9ji2oXn1oJwrykClfjvkrNEqIbmcOdLYJgGD0mbcQhUNeaiyp4yGAlo4XpteDnEoVUbhakPao6EnnCAnafKeQ95nCQS1AtYA3h2LmJEUgIU7DlcheJxO1RlkDQne2HOgXq3thgbJNzPh+gEgP4DGF6vnQweblnFiQAVd6sYTFDQPIig1MHkCtQTePZInbWGIEEMMVrnFCVKLu3GAXIWgWIiwSyxDwIcUvDjXeyCz5vly2vDpLSCV52mQXxwPM1hjWgT9zKfnA6gEXUyxzkIGvH8jZuO5URyBShqMGgoEnIZxGn2IGBTJYN+qcgEMSiRvDLxctPJMN17E54QID0Nn/Yf8Jt3Q7kKdwuV9zoumgV8c6TvBbmdXVvYoDBU5RnEkfwVb+78HQUXfdnLUjT1fww4I7cgTlBSYNARMp1Fg07sHNLgieKbWpkjmQLcYRFnarNqw5jXdJY3oxlt/RyHPFh+yU/dRvz8gNNvNaD9IS0h/gwlTSa/5CeHRSShpIP8xE0Z/S0i9QakM7gRAt6Gr5x5XGKuqODLEV2xyOKKDEeD1yBaUBMVsjbLAXEM2pDogRL6UBildoGgDiFjZqavB+WMcsQ+dSZ4ADW9vdv7lZPrqUV93r9Iv6j7pDO2B4JRJUlDDrkZgIih7BrkDi6XxL9JoBBJ+RhGwQSK189jolETBsLtp7y/duk0T2d77+rw2VV5M5SWpXbeZYIvVP46BUfsAihBIllyZY+pwUqmkpLUBrH5me7le7+oiEgs8Va9EfRb80Vfncv8rR4mrqEhIRopUvB5E8yFg8w/JLOHgRnXAcDbOAtjYYsyUgdJ6We3kFBQQESSCu32HXpCSKPD1yYlp4ULW0AVf+lGSvCSWvoDh3coArCjKE91C1xAbHB9GYosq37aE7EfVmMsuayE3V5HwauwAoYYJblbhzEtt+ADGHvNEitBMc1K8Z6CT8oXU1d8GklZs0tny3IN0Zf5VKF9JUVY3leUXibJPJsQQyfF3ONcsgMawbDLxiSv1muesYg04XpiSAVCSnFqtFc3rvGouSOXvV/978KRWtbEE/5xlmKd/bvBch0a/9ZFBDSt6Pzf/HFN+wBv6tGoDBJpI1e9vf/nXY5lbQiN5DfGOVM8R27/JfbC57iS5QHO/yV8cT+S2DCvLe8yPPyvPyL8hdhaJBFIbeQHgAAAABJRU5ErkJggg==" alt="">
<span>Heading</span>
</h1><p>
<span>Name</span>
<span>Street</span>
<span>City</span>
</p>
</div>
</body>
</html>
When I try to generate the PDF with the following PHP code:
use DompdfDompdf;
require 'dompdf/autoload.inc.php';
$dompdf = new DOMPDF();
$dompdf->set_option('isHtml5ParserEnabled', true);
$dompdf->load_html(file_get_contents('template.html'));
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream('Title', array("Attachment" => false));
The error is thrown.
But if I remove the CSS property display: inline-block;
and the <img>
tag then the PDF is rendered.
I encounter this behavior only on my live environment. When I’m on my local machine using WAMP, everything works perfectly.
I’ve already tried to remove the spaces between <html>
and <head>
and also tried to remove every single white-space between the tags by minifying the content but the problem still remains.
I’m already using the option isHtml5ParserEnabled
and checked the value of DOMPDF_ENABLE_HTML5PARSER
and it didn’t solve anything.
I verified that all the PHP extensions needed to make DOMPDF work are enabled and when I compared the configurations of both my local and live environments, I found that they were exactly the same.
There are no file permissions problems nor resource availability related issues.
I spent hours on that and I literally have no clue on what can cause this so any help would be welcome.