2011-08-27 76 views
1

这是我在vendors/xtcpdf.php文件添加代码:CakePHP的可下载的PDF文件

<?php App::import('Vendor','tcpdf/tcpdf'); 

class XTCPDF extends TCPDF { 

    var $xheadertext = 'PDF created using CakePHP and TCPDF'; 
    var $xheadercolor = array(0,0,200); 
    var $xfootertext = 'Copyright © %d XXXXXXXXXXX. All rights reserved.'; 
    var $xfooterfont = PDF_FONT_NAME_MAIN; 
    var $xfooterfontsize = 8; 

    /** 
    * Overwrites the default header 
    * set the text in the view using 
    * $fpdf->xheadertext = 'YOUR ORGANIZATION'; 
    * set the fill color in the view using 
    * $fpdf->xheadercolor = array(0,0,100); (r, g, b) 
    * set the font in the view using 
    * $fpdf->setHeaderFont(array('YourFont','',fontsize)); 
    */ 
    function Header() 
    { 

     list($r, $b, $g) = $this->xheadercolor; 
     $this->setY(10); // shouldn't be needed due to page margin, but helas, otherwise it's at the page top 
     $this->SetFillColor($r, $b, $g); 
     $this->SetTextColor(0 , 0, 0); 
     $this->Cell(0,20, '', 0,1,'C', 1); 
     $this->Text(15,26,$this->xheadertext); 
    } 

    /** 
    * Overwrites the default footer 
    * set the text in the view using 
    * $fpdf->xfootertext = 'Copyright © %d YOUR ORGANIZATION. All rights reserved.'; 
    */ 
    function Footer() 
    { 
     $year = date('Y'); 
     $footertext = sprintf($this->xfootertext, $year); 
     $this->SetY(-20); 
     $this->SetTextColor(0, 0, 0); 
     $this->SetFont($this->xfooterfont,'',$this->xfooterfontsize); 
     $this->Cell(0,8, $footertext,'T',1,'C'); 
    } 
} 
?> 

这里是我的控制器代码:

public function download($id = null) { 

    if (!$id) 
    { 
     $this->Session->setFlash('Sorry, there was no property ID submitted.'); 
     $this->redirect(array('action'=>'index'), null, true); 
    } 
    Configure::write('debug',0); // Otherwise we cannot use this method while developing 

    $id = intval($id); 

    $property = $this->User->find('all',array('conditions'=>array('User.id'=>$id))); // here the data is pulled from the database and set for the view 
    //$property = $this->__view($id); 
    if (empty($property)) 
    { 
     $this->Session->setFlash('Sorry, there is no property with the submitted ID.'); 
     $this->redirect(array('action'=>'index'), null, true); 
    } 

    $this->layout = 'pdf'; //this will use the pdf.ctp layout 
    $this->render('download'); 
} 

这里是我的意见代码文件中:

<?php 
App::import('Vendor','xtcpdf'); 
$tcpdf = new XTCPDF(); 
$textfont = 'freesans'; // looks better, finer, and more condensed than 'dejavusans' 

$tcpdf->SetAuthor("KBS Homes & Properties at http://kbs-properties.com"); 
$tcpdf->SetAutoPageBreak(false); 
$tcpdf->setHeaderFont(array($textfont,'',40)); 
$tcpdf->xheadercolor = array(150,0,0); 
$tcpdf->xheadertext = 'KBS Homes & Properties'; 
$tcpdf->xfootertext = 'Copyright © %d KBS Homes & Properties. All rights reserved.'; 

// add a page (required with recent versions of tcpdf) $tcpdf->AddPage(); 

// Now you position and print your page content // example: $tcpdf->SetTextColor(0, 0, 0); $tcpdf->SetFont($textfont,'B',20); $tcpdf->Cell(0,14, "Hello World", 0,1,'L'); // ... // etc. // see the TCPDF examples 

echo $tcpdf->Output('sample.pdf', 'D'); 

?> 

如何添加数据使其在PDF文件中可见并且PDF文件将被下载?

回答