2011-12-15 2 views
5

Desidero posizionare la sezione footer su ogni pagina del documento tranne la prima.TCPDF - Avere footer/intestazione solo su alcune pagine

Ho creato il mio footer personalizzato estendendo la classe TCPDF e sovrascrivendo il suo metodo footer.

Poi sulla base della documentazione e l'utilizzo di sotto esempio ho capito dovrei usare SetPrintHeader e SetPrintFooter metodi:

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(); 

Tuttavia, quanto sopra non impedisce il piè di pagina/colpo di testa di essere stampato a tutti!

Cosa sto facendo di sbagliato qui?

Grazie mille in anticipo !!

risposta

8

penso che

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

stampe o nasconde l'intestazione e piè di pagina a livello globale, quindi se lo fai

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

// Page two and on .. 

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

Stai solo dicendo TCPDF per stampare l'intestazione e piè di pagina (le ultime due affermazioni) .

Cosa si dovrebbe fare è, nella funzione di intestazione e piè di pagina, le cose di stampa condizionale basano sulla pagina ci si trova. Qualcosa di simile (non testato, non ho il mio PHP IDE in questo momento)

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

} 
+0

Grazie Nicola, sì, quello che dici è assolutamente giusto. È un'istruzione globale, quindi viene preso in considerazione l'ultimo valore. Il problema con i numeri di pagina è che la mia prima pagina è facoltativa, quindi potrebbe non essere sempre la pagina 0. C'è un modo per dare un nome alla pagina? – user1099862

+1

Cosa intendi con la prima pagina è opzionale? In ogni caso ho dimenticato due '=' nel mio codice ... in ogni caso penso che devi trovare una logica per capire la pagina in cui ti trovi e poi decidere se stampare l'intestazione o no –

0

L'intestazione può essere controllata modificando la funzione startPage in tcpdf.php

In questo esempio, ho bisogno solo di intestazioni da pagina 2.

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