Loop Anda bekerja dengan baik. Cara Anda menambahkan halaman ke PDF Anda mungkin salah. Tampaknya Anda menimpa satu halaman lagi dan lagi alih-alih melampirkan yang baru.
EDIT
Saya tidak pernah menggunakan dompdf. Melihat sekilas ke dalam dokumen, saya pikir Anda membuat sesuatu seperti markup HTML yang kemudian diubah menjadi PDF, apakah saya benar?
Contoh kode
$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");
Jika Anda bertanya-tanya tentang sintaks yang tidak biasa $var = <<<HTML \r\nHTML
, itu adalah heredoc . Hanya saja lebih nyaman menggunakan heredocs ketika Anda memiliki banyak kode inline alien, ini dapat memiliki variabel {$varname}
dan Anda tidak perlu khawatir tentang kutipan. Anda hanya perlu memastikan bahwa heredoc lebih dekat HTML
berada di baris baru dan tidak menjorok.
EDIT2
Masih belum terlalu yakin, perpustakaan mana yang Anda gunakan. Saya menemukan ekstensi ini terlihat cukup bagus dan disebut dompdf, seperti yang Anda katakan dalam pertanyaan Anda.
Komentar terakhir Anda menunjukkan bahwa Anda belum menyelesaikan masalah Anda sejauh ini, jadi saya memutuskan untuk menambahkan beberapa informasi lagi agar Anda mencapai target.
dompdf dapat membaca properti CSS2 dan CSS3 dari dokumen masukan Anda.
Setiap siklus dalam while
loop di atas mewakili satu guru yang masing-masing mendapatkan halaman sendiri di dokumen keluaran.
Saya memasukkan halaman ke dalam wadah div dengan kelas teacherPage
. Anda dapat mengisi wadah ini dengan semua informasi yang ingin Anda tampilkan untuk seorang guru.
Sekarang yang perlu kita lakukan, adalah memberi tahu dompdf setiap teacherPage
adalah halaman baru. Ini dapat dilakukan dengan menggunakan @page
markup dikirim dengan CSS3
Saya menambahkan wadah css kosong <style type="text/css"></style>
ke dokumen contoh di atas, di situlah penataan gaya halaman seharusnya.
Contoh CSS
@page teacher {
size: A4 portrait;
margin: 2cm;
}
.teacherPage {
page: teacher;
page-break-after: always;
}
Dengan @page
anda dapat menentukan halaman bernama teacher
, yang dapat memiliki properti yang valid untuk seluruh penampung halaman.
page-break-after: always
akan memulai halaman baru setelah setiap penampung
Semoga membantu, selamat mencoba :)