我用PHP创建了一个带FPDF的pdf文件。当我在其中插入页眉和页脚时,它们会自动显示在pdf文件的所有页面上。但我想阻止这些页眉和页脚显示在第一页上,并从pdf文件的第二页开始显示它们。我在网上搜索但无法找到解决方案。
换句话说,我想为我用FPDF创建的pdf报告动态创建封面。
有人可以从pdf文件的第一页给我一些关于如何执行hidinh页眉和页脚任务的提示!
任何帮助将不胜感激!
答案 0 :(得分:7)
这是一件容易的事。请尝试以下方法:
class PDF extends FPDF {
...
function Header() {
if ( $this->PageNo() !== 1 ) {
// Add your stuff here
}
}
function Footer() {
if ( $this->PageNo() !== 1 ) {
// Add your stuff here
}
}
}
答案 1 :(得分:4)
问题是在第288行的Close()方法中创建了页脚,这是从第987行的Output()调用的,这意味着你有效地关闭了页脚然后再开始显示它。如果我需要灵活性,我会怎么做:
class PDF extends FPDF {
function Header() {
if (!isset($this->header[$this->page]) || !$this->header[$this->page]) {
// ...
}
}
function Footer() {
if (!isset($this->footer[$this->page]) || !$this->footer[$this->page]) {
// ...
}
}
}
然后像:
一样使用它$pdf->header[1] = false;
$pdf->footer[1] = false;
$pdf->AddPage();
$pdf->header[2] = true;
$pdf->footer[2] = true;
$pdf->AddPage();
它可能不是最优雅的解决方案,但它可以正常工作,它可以有效地允许您动态更改页脚的可见性(ps:不指定状态也会让您使用标题有效地减少所需的代码量)
答案 2 :(得分:1)
我想为不想跳过第一页,但希望跳过最后一页(或任何一页)的人添加答案。如果您具有动态更改的文本并且无法预见页码,则特别方便。 这可以通过在将页面添加到PDF时设置布尔值来实现。
将页眉/页脚定义为
class PDF extends FPDF {
function Header() {
if (!$this->skipHeader) {
// ...
}
}
function Footer() {
if (!$this->skipFooter) {
// ...
}
}
}
然后,在初始化pdf时,请确保将这些布尔值设置为false,这样通常会得到页眉/页脚。
$pdf = new PDF();
$pdf->skipHeader = false;
$pdf->skipFooter = false;
一旦您确实要跳过页眉或页脚,请将相应的布尔值设置为true
$pdf->AddPage();
$pdf->skipHeader = true;
$pdf->AddPageContents();
如果要在下一页上设置页眉/页脚,请记住将它们设置为false!