Dompdf отображает мою HTML-страницу, но без сохранения стиля, а также не отображает ничего, что находится внутри тега php.
Я пытаюсь отобразить текущую страницу:
Но при использовании dompdf я получаю следующий результат:
Полный предварительный просмотр формата A4, как вы видите на первом изображении, создается внутри тега php:
try {
require "config.php";
require "common.php";
$id = $_GET['cvid'];
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT * FROM cvs WHERE id = :cvid";
$statement = $connection->prepare($sql);
$statement->bindParam(':cvid', $id, PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll();
}
catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
?>
<?php include "header.php"; ?>
<p class="hidden" id="hiddencvid"><?php echo $id ?></p>
<button id="updatecv" name="updatecv" class="cvupdater">Opdater CV</button>
<form action="createpdf.php">
<button id="makepdf" name="makepdf" class="cvupdater">Lav PDF</button>
</form>
<p class="cvupdater" style="width:500px;">Tryk på tekst for at redigere. Tryk på "Opdater CV" for at gemme ændringer.</p>
<a href="index.php">Hjem</a>
<div class="cvpreview">
<?php foreach($result as $row) { ?>
<div class="cvheader">
<div id="img-wrapper">
<img src="uploads/<?php echo escape($row["cvid"]) . ".png" ?>" alt="profile_picture">
</div>
<h1><?php echo escape($row["fullname"])?></h1>
<div contenteditable class="cvheader-worktitle" id="worktitle"><?php $decodedworktitle = html_entity_decode($row["worktitle"]); echo $decodedworktitle?></div>
</div>
<hr>
<div class="cvbody">
<div class="leftcolumn">
<div class="profil columnboxleft">
<h5>Profil</h5>
<div contenteditable class="cvtext" id="profiledesc"><?php $decodedprofiledesc = html_entity_decode($row["profiledesc"]); echo $decodedprofiledesc?></div>
</div>
<div class="workexperience columnboxleft">
<h5>Arbejdserfaring</h5>
<div contenteditable class="cvtext" id="workexperience"><?php $decodedworkexperience = html_entity_decode($row["workexperience"]); echo $decodedworkexperience?></div>
</div>
<div class="education columnboxleft">
<h5>Uddannelse</h5>
<div contenteditable class="cvtext" id="education"><?php $decodededucation = html_entity_decode($row["education"]); echo $decodededucation?></div>
</div>
</div>
<div class="rightcolumn">
<div class="details columnboxright">
<h5>Detaljer</h5>
<div contenteditable class="cvtext" id="phonenumber"><?php $decodedphonenumber = html_entity_decode($row["phonenumber"]); echo $decodedphonenumber?></div>
<div contenteditable class="cvtext" id="email"><?php $decodedemail = html_entity_decode($row["email"]); echo $decodedemail?></div>
<div contenteditable class="cvtext" id="birthdate"><?php $decodedbirthdate = html_entity_decode($row["birthdate"]); echo $decodedbirthdate?></div>
</div>
<div class="skills columnboxright">
<h5>Evner</h5>
<div contenteditable class="cvtext" id="skills"><?php $decodedskills = html_entity_decode($row["skills"]); echo $decodedskills?></div>
</div>
<div class="languages columnboxright">
<h5>Sprog</h5>
<div contenteditable class="cvtext" id="languages"><?php $decodedlanguages = html_entity_decode($row["languages"]); echo $decodedlanguages?></div>
</div>
</div>
</div>
<?php } ?>
</div>
<?php include "footer.php"; ?>
И у меня есть еще один файл php для созданияpdf (createpdf.php):
require '../vendor/autoload.php';
ob_start();
include "cvmaker.php";
$html = ob_get_clean();
ob_end_clean();
use Dompdf\Dompdf;
define('DOMPDF_ENABLE_PHP', true);
$options = new \Dompdf\Options();
$options->setIsPhpEnabled(true);
$dompdf = new Dompdf($options);
$dompdf->loadHtml($html);
$dompdf->setPaper('a4', 'portrait');
$dompdf->render();
$dompdf->stream('hello.pdf');
?>
Я пробовал вмешиваться в различные варианты dompdf, но я продолжаю возвращаться с тем же результатом.Как я могу получить его для рендеринга моего встроенного PHP?