第一页 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');
我正在做这个 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');