Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете няколко страници с dompdf

Вашият цикъл работи добре. Начинът, по който добавяте страници към вашия PDF файл, вероятно е грешен. Очевидно презаписвате една страница отново и отново, вместо да прикачвате нова.

РЕДАКТИРАНЕ

Никога не съм използвал dompdf. Бърз поглед в документите ми позволи да си помисля, че създавате нещо като HTML маркиране, което след това се преобразува в PDF, правилно ли разбрах?

Примерен код

$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");

Ако се чудите за необичайния синтаксис $var = <<<HTML \r\nHTML , това е heredoc . Просто е по-удобно да използвате heredocs, когато имате много извънземен вграден код, това може да има променливи {$varname} и не е нужно да се притеснявате за цитати. Всичко, което трябва да се уверите, е, че heredoc по-близо HTML е на нов ред и без отстъп.

РЕДАКТИРАНЕ2

Все още не съм много сигурен коя библиотека използвате. Намирам това разширение изглежда доста добре и се нарича dompdf, точно както казахте във вашия въпрос.

Последният ви коментар показва, че не сте решили проблема си досега, затова реших да добавя още информация, за да ви отведе до целта.

dompdf може да чете свойствата на CSS2 и CSS3 на вашия входен документ.

Всеки цикъл в while цикълът по-горе представлява един учител, като всеки от тях получава собствена страница в изходния документ.

Поставих страницата в div контейнер с класа teacherPage . Можете да попълните този контейнер с цялата информация, която искате да се показва за учител.

Сега всичко, което трябва да направим, е да кажем на dompdf всяка teacherPage е нова страница. Това може да стане с помощта на @page маркировка доставена с CSS3

Добавих празен css контейнер <style type="text/css"></style> към примерния документ по-горе, това е мястото, където трябва да отиде стилът на страницата.

Примерният CSS

@page teacher {
  size: A4 portrait;
  margin: 2cm;
}

.teacherPage {
   page: teacher;
   page-break-after: always;
}

С @page можете да дефинирате наименувана страница teacher , който може да има свойства, валидни за целия контейнер на страницата.

page-break-after: always ще започне нова страница след всеки контейнер

Надявам се това да помогне, забавлявайте се да опитвате :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SELECT срещу UPDATE производителност с индекс

  2. Как да изчислим средните продажби на седмица в MySQL

  3. 3 начина за намиране на редове, които съдържат главни букви в MySQL

  4. Търсене със стойност, разделена със запетая, mysql

  5. Грешка в Mysql Query - Auto Coins ADD