【问题标题】:TCPDF table on multiple page with margin带边距的多页 TCPDF 表格
【发布时间】:2020-01-29 14:04:16
【问题描述】:

我有一张动态变化的表格。因此,表格可以在多个页面上。

我成功地更改了页面而没有中断行,但我遇到了关于文档标题的问题。该表格在第二页上继续,但从顶部开始,忽略文档中为徽标设置的边距。

这是我的代码

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

【问题讨论】:

  • 如何设置页眉、页边距和徽标?也许代码可以帮助更好的解决方案
  • 我使用 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));
  • 你已经添加$pdf-&gt;SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf-&gt;SetHeaderMargin(PDF_MARGIN_HEADER);了吗?
  • 是的,我已经有了那个代码...

标签: php html html-table tcpdf


【解决方案1】:

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

// 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的结果示例

【讨论】:

  • 谢谢。是的,我已经使用这个示例构建了我的页面。所以,我已经有了这些代码行,但它不起作用。我所做的是设置最大行数,然后添加页面并在其他页面上继续...
【解决方案2】:

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

这是我找到的最简单的方法(我急于寻找解决方案)

【讨论】:

    【解决方案3】:

    我在生成多页工资单时遇到了这个问题,我通过删除除&lt;table&gt;&lt;thead&gt;&lt;tbody&gt; 之外的所有 HTML 标记解决了这个问题

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

    【讨论】:

      猜你喜欢
      • 2013-06-29
      • 2012-03-14
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多