2016-05-30 4 views
0

У меня есть таблица, которая изменяется динамически. Таким образом, таблица может быть на нескольких страницах.Таблица TCPDF на нескольких страницах с запасом

Я успешно изменяю страницу без разрыва строки, но у меня есть проблема с заголовком документа. Таблица продолжается на второй странице, но начинается сверху, не считая значения, заданного для логотипа в документе.

Вот мой код

$html = '<br/> 
     <table cellpadding="1" cellspacing="2" cellpadding="5" border="0" style="text-align:center;"> 
      <thead> 
       <tr> 
        <th colspan="4" style="border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c; border-right:0.5px solid #1d2e5c;" bgcolor="#1d2e5c"><font color="#ffffff">&Eacute;QUIPEMENTS ET LOGICIELS</font></th> 
       </tr> 
       <tr> 
        <th style="width:10%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c;">Qt&eacute;</th> 
        <th style="width:50%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c;">Description</th> 
        <th style="width:20%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c;">Prix</th> 
        <th style="width:20%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c; border-right:0.5px solid #1d2e5c;">Total</th> 
       </tr> 
      </thead>'; 

foreach($equipements as $row) { 
    $quant = $row['Qte']; 
    $priceUnit = (ISSET($row['AutrePrix']) && $row['AutrePrix'] != 0) ? $row['AutrePrix'] : $row['Prix']; 
    $totalEquip = $quant * $priceUnit; 
    $totalAllEquip += $totalEquip; 
    $html .= '<tr nobr="true"> 
       <td style="width:10%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c;">' . $quant . '</td> 
       <td style="width:50%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c; text-align: left;">' . $row['Nom'] . '</td> 
       <td style="width:20%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c; text-align: right;">' . number_format($priceUnit, 2, '.', ' ') . '<font size="-2"> $</font></td> 
       <td style="width:20%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c; border-right:0.5px solid #1d2e5c; text-align: right;">' . number_format($totalEquip, 2, '.', ' ') . '<font size="-2"> $</font></td> 
       </tr>'; 
} 
$html .= '<tr> 
      <td colspan="3"></td> 
      <td style="width:20%; border-left:0.5px solid #1d2e5c; border-bottom:0.5px solid #1d2e5c; border-right:0.5px solid #1d2e5c; text-align: right;" bgcolor="#1d2e5c"><font color="#ffffff">' . number_format($totalAllEquip, 2, '.', ' ') . '</font><font color="#ffffff" size="-2"> $</font></td> 
      </tr> 
     </table>'; 

$pdf->writeHTML($html, true, false, false, false, ''); 

EDIT: 2016-06-01

Я использую библиотеку TCPDF: sourceforge.net/projects/tcpdf и файл tcpdf_config.php. Команда я использую, чтобы установить данные заголовка является:

$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING, array(0,64,255), array(0,64,128)); 
+0

как вы установили свой заголовок, поля и логотип? Возможно, код может помочь для лучшего решения. –

+0

Я использую библиотеку tcpdf: https://sourceforge.net/projects/tcpdf/ и файл tcpdf_config.php. Команда, которую я использую для установки данных заголовка: $ pdf-> SetHeaderData (PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING, массив (0,64,255), массив (0,64,128)); – sincos

+0

Вы уже добавляете '$ pdf-> SetMargins (PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $ pdf-> SetHeaderMargin (PDF_MARGIN_HEADER); '? –

ответ

0

Поскольку все конфигурации, которые я настроил не работал (я настроил все как пример здесь: http://www.tcpdf.org/examples/example_048.phps - http://www.tcpdf.org/examples/example_048.pdf), я, наконец, установить счетчик для максимального количества строк на странице, а затем, я добавил новую страницу и после этого, я продолжал на другой странице.

Это был самым простым способом я нашел (я был поторопиться, чтобы найти решение)

0

Убедитесь, что вы установите страницу маржу и авто разрыв страницы

// set margins 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 

// set auto page breaks 
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 

, например, вы взглянуть на http://www.tcpdf.org/examples/example_048.phps и пример результата на может http://www.tcpdf.org/examples/example_048.pdf

+0

Спасибо. Да, я построил свою страницу, используя этот пример. Итак, у меня уже есть эти строки кода, и это не работает. То, что я сделал, - установить максимальное количество строк, а затем добавить страницу и продолжить на другой странице ... – sincos

+0

Это означает, что вы уже решили свою проблему? –

Смежные вопросы