Jan 23, 2013

Sử dụng TCPDF trong CakePHP 2.x



Trong bài hướng dẫn này, chúng ta sẽ tạo một PDF helper sử dụng thư viện TCPDF. Chúng ta tập trung vào tạo một helper class như thế nào trong CakePHP. Nếu bạn muốn tìm hiểu thêm về TCPDF để sử dụng tốt chúng. Vui lòng truy cập địa chỉ http://www.tcpdf.org 

Mục lục

1.Chuẩn bị
2. PDF helper class
3. Sử dụng

 4. Kết luận

Nội dung chi tiết




1. Chuẩn bị

Download TCPDF từ trang http://www.tcpdf.org

Giải nén và copy vào “app/vendors/tcpdf”

2. PDF Helper class


Tạo file “pdf.php” trong thư mục “app/views/helpers/pdf.php”. Code cho file này như sau:

<?php
 App::import('Vendor','TCPDF',array('file' => 'tcpdf/tcpdf.php'));
 class PdfHelper  extends AppHelper                                  
{
    var $core;
 
    function PdfHelper() {
        $this->core = new TCPDF();
    }
     
}
?>

Import class TCPDF từ thư mục vendor
Extend PdfHelper từ AppHelper class.
Những dòng code phía trên chúng ta đã cài đặt lớp PdfHelper là lớp đại diện cho TCPDF. Bất cứ lúc nào chúng ta cần dùng các hàm của TCPDF cũng ta chỉ đơn giản làm như sau:
$pdf->core->TCPDFfunction();

3. Sử dụng

Chúng ta cùng test class helper này.
Tạo 1 layout file "app/views/layouts/pdf.ctp":
<?php
header("Content-type: application/pdf");
echo $content_for_layout;
?>  
Tạo 1 PdfsController class, và include PDF Helper. Chúng ta cũng sẽ tạo một index function cho generating pdf:
<?php
class PdfsController extends AppController {
     var  $uses = null;
     var  $helpers = array('Pdf');      
     function index() {
        $this->layout='pdf';       
     }
}
?>

Bây giờ chúng ta tạo 1 view file "app/views/pdfs/index.ctp", file này sẽ sử dụng PDF Helper class để generate PDF :
<?php
$this->Pdf->core->addPage('', 'USLETTER');
$this->Pdf->core->setFont('helvetica', '', 12);
$this->Pdf->core->cell(30, 0, 'Hello World');
$this->Pdf->core->Output('example_001.pdf', 'D');
Bây giờ mở trình duyệt lên và gõ http://diachiwebrootcuaban/pdfs/index. Bạn sẽ thấy kết quả.

4. Kết luận

Hy vọng rằng với bài hướng dẫn này sẽ giúp được ít nhiều trong công việc của bạn. Nếu có thắc mắc về vấn đề gì về bài hướng dẫn vui lòng comment bên dưới, tôi sẽ giải đáp trong khả năng của mình.

No comments:

Post a Comment