2011-02-10 2 views
0

와 이상한 문제 : 여기TCPDF - 여기에 소스 코드를 체크 아웃 바닥 글

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

체크 아웃 스크립트 여기

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

문제는 ... 바닥 글 인쇄 벌금을 마지막 페이지를 제외한 모든 페이지에 마지막 페이지에는 바닥 글이 없습니다. 문서에 페이지가 하나만 있으면 꼬리말이 전혀 인쇄되지 않습니다.

+1

코드를 게시 할 수 있습니까? – jpwco

+0

그는 ... 첫 번째 링크에 있습니다. –

답변

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.

명시 적으로 AddPage()을 호출 할 때 Footer()이 호출되는 것처럼 보입니다.이 시점에서 이전 페이지에 추가됩니다. 나머지 시간은 당신이 직접 전화해야한다고 생각합니다.

AddPage()의 대안으로 들리는이 전체 StartPage()/EndPage() 건도 있습니다.

"시작 페이지, 머리글, 텍스트, 바닥 글, 끝 페이지 그리기"를 원할 수도 있습니다. Write()AddPage()으로 전화를 걸므로 모든 페이지가 마지막 페이지에있는 머리글과 바닥 글이 표시됩니다.

결론 :이 예제에서는 Write()으로 전화 한 후 Footer()으로 전화하십시오. 실세계의 예는 거의 확실히 더 복잡 할 것입니다.

+0

감사합니다 남자, 그것을 결코 이해하지 못했지만 처음부터 다시 시작했습니다 ... 아래 참조 – ladieu