2011-02-10 89 views
0

查看源代码在这里奇怪的问题:TCPDF - 与页脚

http://www.savvissl.com/demo1/showcode.php

退房这里的脚本

http://www.savvissl.com/demo1/testPDF.php

这里是问题...页脚打印精细除了最后一页以外的每一页上。最后一页从未有过页脚。如果文档中只有一个页面,则页脚根本不会打印。

+1

你可以发布你的代码? – jpwco 2011-02-10 23:11:49

+0

他确实......它在第一个链接。 – 2011-02-10 23:33:18

回答

2

好吧,我弄不明白,但我能够复制一个工作的同事的例子。如果有人想在这里的源代码是:

<?php 

require_once('tcpdf/config/lang/eng.php'); 
require_once('tcpdf/tcpdf.php'); 


define('PDF_FOOTER_TEXT','800 Vinial St. Pittsburgh, PA 15212 | phone: 412.321.7006 | fax: 412.321.7005 | www.savvior.com'); 
$PDF_LINE_COLOR=array(255,255,0); 
define('PDF_FOOTER_TEXT_COLOR',170); 


class MYPDF extends TCPDF 
{ 
    //Page header 
    public function Header() 
    { 
     global $PDF_LINE_COLOR; 
     $image_file = K_PATH_IMAGES.'image.jpg'; 
     $this->Image($image_file, 160, 0, 30, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false); 
     $this->SetFont('helvetica', 'B', 20); 
     $this->Cell(0, 15, '', 0, false, 'C', 0, '', 0, false, 'M', 'M'); 
     $this->line(10,27,200,27,array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'solid' => 4, 'color' => $PDF_LINE_COLOR)); 
    } 
    public function Footer() 
    { 
     global $PDF_LINE_COLOR; 
     $cur_y = $this->GetY(); 
     $ormargins = $this->getOriginalMargins(); 
     $this->SetTextColor(PDF_FOOTER_TEXT_COLOR, PDF_FOOTER_TEXT_COLOR, PDF_FOOTER_TEXT_COLOR); 
     $this->SetY($cur_y); 
     $this->line(10,400,200,400,array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'solid' => 4, 'color' => $PDF_LINE_COLOR)); 
     $this->Cell(0,11,"Page ". $this->getAliasNumPage().'/'.$this->getAliasNbPages(),'T',0,'L'); 
     $this->Cell(0,11,PDF_FOOTER_TEXT,'T',0,'R'); 
    } 

} 

ob_start(); 
    ?><h1>Content Is Needed For This Page...</h1> 
    ... 
    <? 

    $html=ob_get_clean(); 

function makePDFFile($fileName,$html) 
{ 
    $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
    // set document information 
    $pdf->SetCreator(PDF_CREATOR); 
    $pdf->SetAuthor('Savvior Project Manager'); 
    $pdf->SetTitle('Auto Generated PDF'); 
    $pdf->SetSubject('Auto Generated PDF'); 
    $pdf->SetKeywords('TCPDF'); 
    // set default header data 
    $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); 
    // set header and footer fonts 
    $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); 
    $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); 
    // set default monospaced font 
    $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 
    //set margins 
    $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP+5, 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); 
    //set some language-dependent strings 
    $pdf->setLanguageArray($l); 
    // set font 
    $pdf->SetFont('helvetica', '', 12); 
    // add a page 
    $pdf->AddPage(); 
    $pdf->writeHTML($html, true, false, true, false, ''); 
    $doc=$pdf->Output(dirname(__FILE__)."/cache/{$fileName}", 'F'); 
    return $fileName; 
} 

$file=makePDFFile('poo-poo-platter.pdf',$html); 

header("location: cache/{$file}"); 
?> 

比较这个新的代码,以我的旧揭示了没有洞察到为什么这个工程...其实例如在TCPDF实例文件夹具有相同的问题,但是如果你从他们的网站运行它的页脚显示正确。那么无论如何希望这可以帮助别人

0

我对TCPDF一无所知保存我刚学的going through their docs

它看起来像Footer()只有当你明确地呼叫AddPage(),在这一点上它被添加到上一页。剩下的时间我相信你必须自己来打电话。

还有这整个StartPage()/EndPage()这听起来像AddPage()的替代品。

您可能需要:“起始页,页眉,绘制文本,页脚,结束页”。它看起来像Write()为您调用AddPage(),这就是为什么页面和页脚在最后一页上都存在。

底线:在本示例中,拨打Write()之后,请致电Footer()。真实世界的例子几乎肯定会更复杂一些。