查看源代码在这里奇怪的问题:TCPDF - 与页脚
http://www.savvissl.com/demo1/showcode.php
退房这里的脚本
http://www.savvissl.com/demo1/testPDF.php
这里是问题...页脚打印精细除了最后一页以外的每一页上。最后一页从未有过页脚。如果文档中只有一个页面,则页脚根本不会打印。
查看源代码在这里奇怪的问题:TCPDF - 与页脚
http://www.savvissl.com/demo1/showcode.php
退房这里的脚本
http://www.savvissl.com/demo1/testPDF.php
这里是问题...页脚打印精细除了最后一页以外的每一页上。最后一页从未有过页脚。如果文档中只有一个页面,则页脚根本不会打印。
好吧,我弄不明白,但我能够复制一个工作的同事的例子。如果有人想在这里的源代码是:
<?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实例文件夹具有相同的问题,但是如果你从他们的网站运行它的页脚显示正确。那么无论如何希望这可以帮助别人
我对TCPDF一无所知保存我刚学的going through their docs。
它看起来像Footer()
只有当你明确地呼叫AddPage()
,在这一点上它被添加到上一页。剩下的时间我相信你必须自己来打电话。
还有这整个StartPage()/EndPage()
这听起来像AddPage()
的替代品。
您可能需要:“起始页,页眉,绘制文本,页脚,结束页”。它看起来像Write()
为您调用AddPage()
,这就是为什么页面和页脚在最后一页上都存在。
底线:在本示例中,拨打Write()
之后,请致电Footer()
。真实世界的例子几乎肯定会更复杂一些。
你可以发布你的代码? – jpwco 2011-02-10 23:11:49
他确实......它在第一个链接。 – 2011-02-10 23:33:18