2011-12-15 73 views
5

我想将页脚部分放置在除第一页以外的每个页面上。TCPDF - 仅在特定页面上具有页脚/页眉

我通过扩展TCPDF类并重写其页脚方法创建了自定义页脚。

然后基于该文档,并使用例如下面我明白我应该使用SetPrintHeader和SetPrintFooter方法:

http://www.tcpdf.org/examples/example_002.phps

// Page one 

$pdf->SetPrintHeader(false); 
$pdf->SetPrintFooter(false);  
$pdf->AddPage(); 

// Page two and on .. 

$pdf->SetPrintHeader(true); 
$pdf->SetPrintFooter(true);  
$pdf->AddPage(); 

然而,上述不阻止页脚/报头被打印在所有!

我在这里做错了什么?

非常感谢!

回答

8

我认为

$pdf->setPrintHeader(false); 
$pdf->setPrintFooter(false); 

打印或隐藏页眉和全球页脚所以如果你做

$pdf->SetPrintHeader(false); 
$pdf->SetPrintFooter(false);  
$pdf->AddPage(); 

// Page two and on .. 

$pdf->SetPrintHeader(true); 
$pdf->SetPrintFooter(true); 

你只是告诉TCPDF打印页眉和页脚(最后两个语句) 。

,你应该是,在页眉和页脚功能,打印的东西有条件根据您在,有点像在页面上做什么(未测试,我现在所拥有的不是我的PHP IDE)

function Header(){ 
    $pageN = PageNo(); 
    if($pageN % 2 === 0){ 
     //if page is 2/4/6... don't print anything 
     return; 
    }else{ 
     //do your stuff 

} 
+0

谢谢尼古拉,是的,你说的是完全正确的。这是一个全球指令,所以最后的价值被考虑在内。问题是页码是我的第一页是可选的,所以我可能并不总是0页。有没有办法给页面命名? – user1099862 2011-12-15 14:49:46

0

可以通过修改tcpdf.php中的函数startPage来控制页眉。

在这个例子中,我只需要页面2中的页眉。

// print page header 
    if ($this->numpages > 1) { 
     $this->setHeader(); 
    }