Phalcon PDF

มีงานที่ต้อง output ออกมาเป็น PDF ก็นึกถึง PDF Library คู่บุญ อย่าง TCPDF ที่มีข้อดีคือ เขียนง่าย ใช้งานง่าย และสามารถแปลง HTML String ออกมาเป็น PDF ได้เลย แต่ถ้าต้องมาใช้ร่วมกับ Phalcon หล่ะ ต้องทำยังไง ไม่ยาก ตามมาเลย

ติดตั้ง TCPDF ผ่าน Composer

แก้ใขไฟล์ composer.json เพิ่ม package tcpdf เข้าไป แล้วสั่ง composer update

{
    "require": {
        ...
        "tecnick.com/tcpdf": "dev-master"
    }
}
$ composer update

สร้าง Loader

ที่ app/config/service.php ให้เพิ่ม Dependency Injector เพื่อใช้งาน PDF (TCPDF) เข้าไป ตรงนี้ให้เป็นหน้าที่ของ Composer Autoload

$di->set('tcpdf', function() {
    include __DIR__ . "/../../vendor/autoload.php";
    return new TCPDF();
});

เริ่มใช้งาน PDF

ที่สำคัญคือ เราจะ output view ออกมาเป็น pdf เพราะฉนั้นต้องบอก Phalcon ว่าไม่ต้องเอา View มาใช้ ด้วย $this->view->disable(); จากนั้นก็เรียกใช้งาน TCPDF ได้ตามปกติผ่าน $this->tcpdf ที่เราได้ทำ DI ไว้แล้วที่ขั้นตอน Service Loader

function pdfAction(){  
    $this->view->disable();

    ...

    $this->tcpdf->writeHTML($html, true, false, true, false, '');
    $this->tcpdf->Output('example.pdf', 'I');

แค่นี้ก็ได้ output เป็น PDF ออกมา ส่วนวิธีการใช้งาน TCPDF ก็ไปศึกษากันต่อที่เว็บ TCPDF เค้าเลย