Кажется, не получается заставить это работать, все из буфера показывается, но не создается 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>