第一页TCPDF的不同边距底部

时间:2018-02-24 04:16:33

标签: tcpdf

我正在做这个PDF页面,并且在第一页上有一个页脚图像,它与内容重叠,所以我想将第一页页边距更改为更大的数字,以便它不会重叠使用页脚图像,编码如下,但它不起作用

// set auto page breaks
$pageN = $pdf->PageNo();
if($pageN == 1):
$pdf->SetAutoPageBreak(TRUE, 100);
else:
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
endif;

1 个答案:

答案 0 :(得分:0)

这可以通过最初使用SetAutoPageBreak()设置较大的边距,然后在第一页上绘制页脚后将其设置为较小的边距来实现。这似乎可以实现您正在寻找的结果,但可能有更好的方法来实现这一结果。

以下是扩展TCPDF类的示例:

<?php
require_once('tcpdf_include.php');
// Extend the TCPDF class to create custom footer.
class MYPDF extends TCPDF
{
    public function Footer()
    {
        if ($this->page == 1) {
            $this->SetY(-45);
            $this->Cell(0, 10, 'Page 1 Footer', 0, false, 'C', 0, '', 0, false, 'T', 'M');
            // Set a smaller margin after drawing the first page footer.
            $this->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
        } else {
            $this->SetY(-15);
            $this->Cell(0, 10, 'Page 2+ Footer', 0, false, 'C', 0, '', 0, false, 'T', 'M');
        }
    }
}
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// Set a large margin for the first auto bage break.
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM + 40);
$pdf->AddPage();
$txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. ';
$pdf->Write(0, str_repeat($txt, 400), '', 0, 'C', true, 0, false, false, 0);
$pdf->Output('example.pdf', 'I');