2

こんにちは、請求システムを作成しようとしていますが、関連する URL に移動すると、空白のページとヘッダーが URL になっています。次のチュートリアルに従いました[http://bakery.cakephp.org/articles/kalileo/2010/06/08/creating-pdf-files-with-cakephp-and-tcpdf]

請求書コントローラーのviewPdf関数は次のとおりです

    function viewPdf($id = null) 
    { 
        if (!$id) 
        { 
            $this->Session->setFlash('Sorry, there was no property ID submitted.'); 
            $this->redirect(array('action'=>'index_admin'), 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(); 
    } 

//End of Controller
}

ここに私のviewPdfビューがあります

<?php 
App::import('Vendor','xtcpdf');  
$tcpdf = new XTCPDF(); 
$textfont = 'freesans'; // looks better, finer, and more condensed than 'dejavusans' 
$fpdf->xheadertext = 'YOUR ORGANIZATION';
$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('filename.pdf', 'D'); 

?>

私の知る限り、「hello world」という言葉が書かれたpdfファイルを作成する必要があります。

それが時代遅れであるというアドバイスに従った後、私はgithubへのリンクを使用し、これをコントローラーに入れました

 public function view($id = null) {
    $this->set('title_for_layout', 'Invoices');
    $this->set('stylesheet_used', 'homestyle');
    $this->set('image_used', 'eBOXLogoHome.png');
    $this->layout='home_layout';
            $this->Invoice->id = $id;
            if (!$this->Invoice->exists()) {
                throw new NotFoundException(__('Invalid invoice'));
            }
            $this->pdfConfig = array(
                'orientation' => 'potrait',
                'filename' => 'Invoice_' . $id
            );

            $this->set('invoice', $this->Invoice->read(null, $id));

        }
    }

そして私のview.ctp

<html>
<head></head>
<title></title>
<body>
<?php $this->pdfConfig = array('engine' => 'CakePdf.WkHtmlToPdf') ?>
<?php echo $invoice; ?>
</body>
</html>

配列を出力しますが、pdfファイルとしてレンダリングしません

ここにgithub pagwへのリンクがあります

https://github.com/ceeram/CakePdf

4

2 に答える 2

1

このプラグインを使用してください。セットアップは github ページにあります ;)

https://github.com/ceeram/CakePdf

于 2012-10-17T07:27:10.873 に答える
0

これは廃止されたチュートリアルです。これはCakephp1.2のチュートリアルであり、2.1を使用しています。

MatusEdkoから提供されたGitHubのリンクからのコードの方がはるかに優れています。

ちなみに、de "debug"を3に設定することで、開発およびテスト時にすべてのエラーと通知を表示することをお勧めします。

Configure::write('debug',3); 
于 2012-10-18T08:11:28.793 に答える