【发布时间】:2011-01-14 02:23:01
【问题描述】:
tcpdf 中的AddPage() 自动调用Header 和Footer。如何消除/覆盖它?
【问题讨论】:
标签: php pdf-generation tcpdf
tcpdf 中的AddPage() 自动调用Header 和Footer。如何消除/覆盖它?
【问题讨论】:
标签: php pdf-generation tcpdf
在调用AddPage() 之前使用SetPrintHeader(false) 和SetPrintFooter(false) 方法。像这样:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, 'LETTER', true, 'UTF-8', false);
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->AddPage();
【讨论】:
// set default header data
$pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH, 'marks', 'header string');
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
借助上述功能,您可以更改页眉和页脚。
【讨论】:
如何消除/覆盖它?
另外,Example 3 in the TCPDF docs 展示了如何使用您自己的类覆盖页眉和页脚。
【讨论】:
以下是删除页眉和页脚的另一种方法:
// Remove the default header and footer
class PDF extends TCPDF {
public function Header() {
// No Header
}
public function Footer() {
// No Footer
}
}
$pdf = new PDF();
【讨论】:
控制何时显示标头(或标头的位)的一个很好的简单方法是扩展 TCPDF 类并创建您自己的标头函数,如下所示:
class YourPDF extends TCPDF {
public function Header() {
if (count($this->pages) === 1) { // Do this only on the first page
$html .= '<p>Your header here</p>';
}
$this->writeHTML($html, true, false, false, false, '');
}
}
当然,如果您不想完全没有标题,您也可以使用它来不返回任何内容。
【讨论】:
$this->getAliasNumPage() 尝试了这个,但没有成功,但确实如此。干杯卢基
示例:
- 第一页,没有页脚
- 第二页,有页脚,从第 1 页开始
结构:
// First page
$pdf->startPageGroup();
$pdf->setPrintFooter(false);
$pdf->addPage();
// ... add page content here
$pdf->endPage();
// Second page
$pdf->startPageGroup();
$pdf->setPrintFooter(true);
$pdf->addPage();
// ... add page content here
$pdf->endPage();
【讨论】: