Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara membuat beberapa halaman dengan dompdf

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 :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sphinx dan maksudmu ... ? ide saran. Apakah ini akan berhasil?

  2. Koleksi Pernyataan yang Dipetakan tidak mengandung nilai untuk mybatis mapper

  3. ketersediaan ruang kueri mysql

  4. MySQL DELETE FROM dengan subquery UNION dengan kondisi IN

  5. Bagaimana cara mendapatkan semua nilai dalam kolom menggunakan PHP?