Je lus werkt prima. De manier waarop u pagina's aan uw PDF toevoegt, is waarschijnlijk verkeerd. Blijkbaar overschrijft u een pagina keer op keer in plaats van een nieuwe toe te voegen.
BEWERKEN
Ik heb nooit dompdf gebruikt. Een snelle blik in de documenten laat me denken dat je zoiets als een HTML-opmaak hebt gemaakt die vervolgens wordt geconverteerd naar PDF, heb ik dit goed begrepen?
Voorbeeldcode
$html = <<<HTML
<html>
<head>
<style type="text/css">
/* Your document styling goes here */
</style>
</head>
<body>
HTML;
while ( $row = $dbResult->fetch_assoc() ) {
$html .= '<div class="teacherPage">'
. $row['name'] // your teacher document goes here
'</div>';
}
$html .= '</body></html>';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");
Als je je afvraagt over de ongebruikelijke syntaxis $var = <<<HTML \r\nHTML
, dat is een heredoc . Het is gewoon handiger om heredocs te gebruiken als je veel buitenaardse inline code hebt, dit kan variabelen hebben {$varname}
en u hoeft zich geen zorgen te maken over offertes. Het enige dat u moet controleren, is dat heredoc close HTML
staat in een nieuwe regel en niet ingesprongen.
EDIT2
Nog steeds niet zeker welke bibliotheek je gebruikt. Ik vind deze extensie ziet er best goed uit en het heet dompdf, zoals je in je vraag zei.
Je laatste opmerking geeft aan dat je je probleem tot nu toe niet hebt opgelost, dus heb ik besloten wat meer informatie toe te voegen om je bij het doel te krijgen.
dompdf kan CSS2- en CSS3-eigenschappen van uw invoerdocument lezen.
Elke cyclus in de while
lus hierboven vertegenwoordigt één leraar, waarbij elk van hen een eigen pagina krijgt in het uitvoerdocument.
Ik heb de pagina in een div-container geplaatst met de klasse teacherPage
. Je kunt deze container vullen met alle informatie die je voor een leraar wilt hebben.
Nu hoeven we alleen nog maar dompdf te vertellen aan elke teacherPage
is een nieuwe pagina. Dit kan met @page
markup verzonden met CSS3
Ik heb een lege css-container toegevoegd <style type="text/css"></style>
naar het voorbeelddocument hierboven, daar zou de paginastijl naartoe moeten gaan.
De voorbeeld-CSS
@page teacher {
size: A4 portrait;
margin: 2cm;
}
.teacherPage {
page: teacher;
page-break-after: always;
}
Met @page
je kunt een pagina met een naam definiëren teacher
, die eigenschappen kan hebben die geldig zijn voor de hele paginacontainer.
page-break-after: always
begint een nieuwe pagina na elke container
Ik hoop dat dit helpt, veel plezier met proberen :)