I am developing a pdf page using tcpdf
to display certain data in codeigniter
. It shows the data. But not in the format which I need. Now it shows data with a common header in all pages.
I need to show the main header only on the first page and the rest of the data with another sub header
My code in the controller is
<?php
tcpdf();
$obj_pdf = new TCPDF('L', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$obj_pdf->SetCreator(PDF_CREATOR);
$title = 'Main title';
$obj_pdf->SetTitle($title);
$obj_pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, $title, PDF_HEADER_STRING);
$obj_pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$obj_pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$obj_pdf->SetDefaultMonospacedFont('helvetica');
$obj_pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$obj_pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$obj_pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$obj_pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$obj_pdf->SetFont('helvetica', '', 9);
$obj_pdf->setFontSubsetting(false);
$obj_pdf->AddPage();
ob_start();
// we can have any view part here like HTML, PHP etc
$tbl = <<<EOD
$pdf_cont
EOD;
$obj_pdf->writeHTML($tbl, true, false, false, false, '');
ob_end_clean();
$obj_pdf->Output('sample.pdf', 'I');
here the variable $pdf_cont
contains a large table to show. I can't check(or i don't know how to do it properly) in which page I am and set the header data. Please help me to add the main header on the first page and another header on the rest on pages.
Thank you in advance...
You can check examples of tcpdf and you can inherit TCPDF class and use that class:
class YOUR_CLASS extends TCPDF {
/**
* Overwrite Header() method.
* @public
*/
public function Header() {
// if ($this->tocpage) or
if ($this->page == 1) {
// *** replace the following parent::Header() with your code for TOC/page you want page
// parent::Header();
// this will add logo and text to first page
$this->Image('http://localhost/first_page_logo.png', 10, 10, 15, '', 'PNG', '', 'T', false, 300, '', false, false, 0, false, false, false);
$this->SetFont('helvetica', 'B', 14);
$this->Cell(0, 15, 'First page header text', 0, false, 'C', 0, '', 0, false, 'M', 'M');
} else {
// *** replace the following parent::Header() with your code for other pages
//parent::Header();
// following will add your own logo ant text to other pages
$this->Image('http://localhost/other_pages_logo.png', 10, 10, 15, '', 'PNG', '', 'T', false, 300, '', false, false, 0, false, false, false);
$this->SetFont('helvetica', 'B', 14);
$this->Cell(0, 15, 'Other pages header text', 0, false, 'C', 0, '', 0, false, 'M', 'M');
}
}
} // end of class
and than remove:
$obj_pdf = new TCPDF('L', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
with:
$obj_pdf = new YOUR_CLASS('L', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);