我试图使用TCPDF来创建一个PDF,并需要在最后一页上不同的页脚
使用下面的代码我可以在第一页不同的页脚,但不是最后一次
我已经看了几个帖子关于这个,但不能使它工作
任何执行此帮助将不胜感激
public function Footer() {
$tpages = $this->getAliasNbPages();
$pages = $this->getPage();
$footer = 'NORMAL' . $pages . $tpages;
if ($pages == 1 ) $footer = 'FIRST' . $pages . $tpages;
if ($pages == $tpages) $footer = 'LAST' . $pages . $tpages;
$this->Cell(0, 10, $footer, 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
这给了我
第1页 - FIRST13页2 - NORMAL23第3页(最后一页)NORMAL23
回答:
public function Footer() {
$tpages = $this->getAliasNbPages();
$pages = $this->getPage();
$footer = 'NORMAL' . $pages . $tpages;
if ($pages == 1 ) $footer = 'FIRST' . $pages . $tpages;
if ($this->end == true) $footer = 'LAST' . $pages . $tpages;
$this->Cell(0, 10, $footer, 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
function display() {
#function that has main text
$this->AddPage();
$html = '1st page';
$this->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
$this->AddPage();
$html = '2nd page';
$this->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
$this->AddPage();
$html = 'Last page';
$this->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
$this->end = true;
}
你自己的答案不回答你的问题有最后一页上不同的注脚。
我发现下面的代码从TCPDF自己的作者 ,这不正是你想要的。
class mypdf extends tcpdf {
protected $last_page_flag = false;
public function Close() {
$this->last_page_flag = true;
parent::Close();
}
public function Footer() {
if ($this->last_page_flag) {
// ... footer for the last page ...
} else {
// ... footer for the normal page ...
}
}
}
现在,代码的工作,但前提是你的最后一页不同。 在我的情况,我可以有0-X最后几页,所以我还是需要依靠一个页面计数器。 此代码的工作对我来说:
class mypdf extends tcpdf {
public $page_counter = 1;
public function Make() {
...
// Create your own method for determining how many pages you got, excluding last pages
$this->page_counter = NUMBER;
...
}
public function Footer() {
if ($this->getPage() <= $this->page_counter) {
// ... footer for the normal page ...
} else {
// ... footer for the last page(s) ...
}
}
}
我希望这有帮助:
if($this->page == 1){
$this->Cell(0, 10, "ORIGINAL - Pagina '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
} else {
$this->Cell(0, 10, "COPY - Pagina '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
要么
define("titulos_pie_pdf", ",ORIGINAL, COPY, TITLE1, TITLE2, ...", true);
然后
$titulos = explode(",",titulos_pie_pdf);
$this->Cell(0, 10, $titulos[$this->page]." - Pagina '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
我可不是一个很大的程序员,但是这个代码可以帮助我。
您好我有类似的问题,这解决了它:
public $isLastPage = false;
public function Footer()
{
if($this->isLastPage) {
$this->writeHTML($this->footer);
}
}
public function lastPage($resetmargins=false) {
$this->setPage($this->getNumPages(), $resetmargins);
$this->isLastPage = true;
}
希望它会帮助你:)你想它不完全是,但其easyli调整,我认为:)