0

我对 TCPDF 有疑问:

查看PDF:

function viewPdf($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->__view($id); // here the data is pulled from the database and set for the view 

        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(); 
    }

__看法:

function __view($id = null) { 
                if (!$id) { 
                        $this->Session->setFlash(__('Invalid Calculation.', true)); 
                        $this->redirect(array('action'=>'index')); 
                } 

                $this->set('calculation', $this->Calculation->read(null, $id)); 

        } 

查看PDF.ctp:

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

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



// 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 

$tcpdf->Output('filename.pdf', 'I'); 

?> 

CakePHP 2.2 的 PDF 布局(已弃用 $content_for_layout):

<?php 
header("Content-type: application/pdf"); 
echo $this->fetch('content');
?>

应用程序/供应商中的 xtcpdf.php:

<?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'); 
        } 
    } 
    ?>

而且我总是收到“抱歉,提交的 ID 没有属性”。我没有看到问题。

4

1 回答 1

0

你应该看看这段代码:

function __view($id = null) { 
            if (!$id) { 
                    $this->Session->setFlash(__('Invalid Calculation.', true)); 
                    $this->redirect(array('action'=>'index')); 
            } 

            $data =  $this->Calculation->read(null, $id)); 

            return $data;
    } 
于 2012-07-25T13:18:32.190 回答