第一页 TCPDF 的不同边距底部

Different margin bottom for first page TCPDF

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

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

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

这是一个扩展 TCPDF 的示例 class:

<?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');