tcpdf edit footer

家住魔仙堡 提交于 2020-01-29 03:48:20

问题


How do I edit a footer using tcpdf? I want to add current date & time at the footer. Please help.


回答1:


Override the class like this :

class MYPDF extends TCPDF {
    public function Footer() {
        $image_file = "img/bg_bottom_releve.jpg";
        $this->Image($image_file, 11, 241, 189, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);

        $this->SetY(-15);
        $this->SetFont('helvetica', 'N', 6);
        $this->Cell(0, 5, date("m/d/Y H\hi:s"), 0, false, 'C', 0, '', 0, false, 'T', 'M');
    }
}

then instead of calling :

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

do :

$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);



回答2:


You have to extend the TCPDF class and override the Footer() method as explained on the default example n. 3. Check the official http://www.tcpdf.org website and forums for further information.




回答3:


How can I create 2 footer lines, please?

class MYPDF extends TCPDF {
    private $customFooterText = "";

    /**
     * @param string $customFooterText
     */
    public function setCustomFooterText($customFooterText)
    {
        $this->customFooterText = $customFooterText;
    }

    public function Footer()
    {
        $this->SetY(-15);
        // Set font
        $this->SetFont('helvetica', 'I', 8);
        // Page number
        $this->Cell(0, 10, $this->customFooterText, 0, false, 'C', 0, '', 0, false, 'T', 'M');
    }
}

Usage

$pdf = new MYPDF();
$pdf->setCustomFooterText('THIS IS CUSTOM FOOTER');



回答4:


After the EOD use the below code to overwrite the footer method.

 EOD;

 $txt = date("m/d/Y h:m:s");    

 // print a block of text using Write()
 $pdf->Write($h=0, $txt, $link='', $fill=0, $align='C', $ln=true, $stretch=0, $firstline=false, $firstblock=false, $maxh=0);



回答5:


If you want put an different content on more than one page:

define("bottom_info", "|FIRST PAGE|SECOND PAGE|THIRD PAGE|...", true);  

the info will be separated by " | " (with explode function)

class:

class MYPDF extends TCPDF {

public function Header() {
}

// Page footer
public function Footer() {
    $this->SetY(-15);       
    $this->SetFont('helvetica', '', 7);
    // Page number      
    $titulos = explode("|",bottom_info);        
    $this->Cell(0, 10,  $titulos[$this->page].' - Pagina '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
}

}




回答6:


If you want dynamically change footer text extends TCPDF like this

class MYPDF extends TCPDF {

    private $customFooterText = "";

    /**
     * @param string $customFooterText
     */
    public function setCustomFooterText($customFooterText)
    {
        $this->customFooterText = $customFooterText;
    }

    public function Footer()
    {
        $this->SetY(-15);
        // Set font
        $this->SetFont('helvetica', 'I', 8);
        // Page number
        $this->Cell(0, 10, $this->customFooterText, 0, false, 'C', 0, '', 0, false, 'T', 'M');
    }

}

usage:

$pdf = new MYPDF();
$pdf->setCustomFooterText('THIS IS CUSTOM FOOTER');
// .... etc 



回答7:


I figured it out and here's the solution for others that might come across this thread.

Edit the file "tcpdf.php".

Search for "public function Footer()"

Add timestamp here:

$timestamp = date("m/d/Y h:m:s");

if (empty($this->pagegroups)) {

$pagenumtxt = ' Created on ' .$timestamp.'   '.$this->l['w_page'].' '.$this->getAliasNumPage().' / '.$this->getAliasNbPages();

} else {

$pagenumtxt = ' Created on ' .$timestamp.'   '. $this->l['w_page'].' '.$this->getPageNumGroupAlias().' / '.$this->getPageGroupAlias();

}


来源:https://stackoverflow.com/questions/2824423/tcpdf-edit-footer

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!