mPDF – результат PHP с переменными через буфер

Кажется, не получается заставить это работать, все из буфера показывается, но не создается PDF-файл, если все его в php, как $html = 'Hello World' генерируется отлично?

– ПЕРЕСМОТРЕННЫЙ ВОПРОС – включенный примерный код для отображения фонового изображения сертификата в сгенерированном PDF-файле – это пустой PDF …

div.php экрана div.php выполняется сам по себе.

введите описание изображения здесь

– ПЕРЕСМОТРЕННЫЙ ПРИМЕР КОДА –

 <?php error_reporting(E_ALL);?> <?php include $_SERVER['DOCUMENT_ROOT'].'/TestCert/mpdf/mpdf.php'; $mpdf=new mPDF(); //include ('div.html'); ob_start(); include ('div.php'); ?> <?php $html = ob_get_contents(); ob_end_clean(); // LOAD a stylesheet 1 $stylesheet = file_get_contents('style.css'); $mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text $mpdf->WriteHTML($html,2); $mpdf->Output(); exit; ?> 

– CSS –

 H1 { font-size:14pt; font-family:arial; text-align: center; } H2 { font-size:14pt; font-family:arial; text-align: center; } .certificate { background-image: url("cert.png"); background-size: 100% 100%; height: 594px; width: 1056px; padding: 50px; position: relative; } .certDate { font-size:14pt; font-family:Trebuchet MS; font-weight:normal; position: absolute; bottom: 50px; right: 170px; } .certHead { font-size:40pt; font-family:Trebuchet MS; position: absolute; top: 130px; left: 0; width: 100%; } .certBody { font-size:28pt; font-family:Trebuchet MS; font-weight:normal; position: absolute; top: 220px; left: 0; width: 100%; } 

– div.php –

 <?php global $current_user; $FName = "john"; $LName = "doe"; $FullName = "John Doe"; ?> <HTML> <BODY> <SCRIPT> var namedata = <?php echo json_encode($FName . ' ' . $LName); ?>; document.write("<div class='certificate'>"); document.write("<H2 class='certHead'>Certificate of Completion</H2>"); document.write("<H2 class='certBody'>This Certifies That</br>"); //document.write("" + "John Doe" + "<br><br>"); document.write("" + namedata + "<br></br>"); document.write("Has Successfully Completed The<br>"); document.write("<I>" + "Triage System Course" + "</I></H2></br>"); document.write("<H2 class='certDate'>September 11, 2015</H2>"); document.write("</div>"); document.write('<center> <input type=button onClick="window.print()" value="Print This Page"/> </center>'); </SCRIPT> </BODY> </HTML> 

Вы создаете контент, используя Javascript. Это интерпретируется вашим браузером, но не mPDF (который просто переводит HTML + CSS в PDF).

Попробуйте создать HTML на PHP без Javascript, который должен работать.

только разрешение, которое я смог сделать, заключалось в том, чтобы поместить стиль inline в <div> и не вызывать его из внешнего файла style.css … не уверен, почему один работает над другим, но mPDF, похоже, не нравится класс в стиле (все остальные отлично работают …)

Это работает:

 <div style = "background-image: url('cert.png'); background-size: 100% 100%; height: 594px; width: 1056px; padding: 50px; position: relative;"> Hello World <div> 

Это не означает:

 <div class="certificate"> Hello World </div>