tcpdf自定义页脚调整

时间:2017-05-11 06:30:40

标签: php codeigniter pdf tcpdf

我在php codeigniter框架中使用tcpdf生成发票pdf,我使用的是html模板,然后写入pdf。

发票pdf的公司名称是addreess,然后是项目列表,然后是价格和签名等。

查看案例1 - enter image description here

如果pdf中只有1个项目,则价格和标志框应位于底部

看案例2 -

enter image description here

pdf有很多项目,然后如果空间留在底部,则页脚在底部,否则它应该在2页上,但在页脚上就像是案例3

enter image description here

我的问题是我不知道如何在项目和底部标志部分之间给出正确的区别,否则pdf正在生成FINE !!!!

我的代码是

    public function generatePDF($html1 = NULL, $name = 'PDF', $path = null, $action = 'D') 
{
    ob_start();
    ob_clean();
    ini_set('memory_limit', '-1');
    require_once(APPPATH . 'third_party/tcpdf/tcpdf.php');  
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    $pdf->SetPrintHeader(false);
    $pdf->setFooterData(array(0, 64, 0), array(0, 64, 128));
    $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
    $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
    $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
    // set margins
    $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
    $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
    $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
    // set auto page breaks
    $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
    // set image scale factor
    $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
    $pdf->SetFont('stsongstdlight','B', 12);
    // add a page
    $pdf->AddPage();
    $pdf->SetLineStyle( array( 'width' => 2, 'color' => array(0,0,0)));
    $pdf->Line(0,0,$pdf->getPageWidth(),0); 
    $pdf->Line($pdf->getPageWidth(),0,$pdf->getPageWidth(),$pdf->getPageHeight());
    $pdf->Line(0,$pdf->getPageHeight(),$pdf->getPageWidth(),$pdf->getPageHeight());
    $pdf->Line(0,0,0,$pdf->getPageHeight());

    // output the HTML content
    $pdf->writeHTML($html1, true, false, true, false, '');
    $pdf->Output($name . '.pdf', $action);
}

0 个答案:

没有答案