具有边距的多页上的TCPDF表

时间:2016-05-30 14:39:02

标签: php html html-table 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, '');

编辑: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));

3 个答案:

答案 0 :(得分:0)

确保设置页边距和自动分页

//tr[.//div[@class='present_name'] = 'all']/@id

例如,您可以查看http://www.tcpdf.org/examples/example_048.phps 以及http://www.tcpdf.org/examples/example_048.pdf

的结果示例

答案 1 :(得分:0)

因为我设置的所有配置都不起作用(我已经在这里设置了所有内容:http://www.tcpdf.org/examples/example_048.phps - http://www.tcpdf.org/examples/example_048.pdf),我终于设置了一个计数器页面中的行数最多,然后,我添加了一个新页面,之后,我继续在另一页上。

这是我发现的最简单方法(我急着找到解决方案)

答案 2 :(得分:0)

我遇到了产生多页薪水表的问题,我通过删除除<table><thead><tbody>以外的所有HTML标签来解决了该问题

我认为这对其他人有帮助。