Articles

Memahami TCPDF

Setelah kita berhasil melakukan setup TCPDF pada http://www.proweb.co.id/articles/web_application/setup_tcpdf_yii.html , kita akan belajar TCPDF dari contoh yang disertakan. Pada saat artikel ini ditulis,  saya belum menemukan dokumentasi TCPDF yang komprehensif sehingga cara belajarnya lebih cenderung dari contoh yang ada. Kita akan belajar dari contoh pertama dari TCPDF yang disertakan saat kita mendownload program TCPDF.

Kita hanya membahas bagian-bagian yang penting saja. Kita akan membuka file example_001.php

  1. Pada 'example_001.php' perhatikan line:
    // Include the main TCPDF library (search for installation path).
    require_once('tcpdf_include.php');

    Jika kita telusuri pada file 'tcpdf_include.php' maka kita akan mendapatkan informasi berikut:
    require_once('config/tcpdf_config_alt.php');

    Jika telusuri 'config/tcpdf_config_alt.php' maka kita akan mendefinisikan banyak constant sebagai contoh:
    define ('PDF_HEADER_LOGO', 'tcpdf_logo.jpg');
    define ('PDF_PAGE_FORMAT', 'A4');
    define ('PDF_PAGE_ORIENTATION', 'P');

    Kemudian jika kita telusuri 'tcpdf_include.php' maka ada :
    $tcpdf_include_dirs = array(
        realpath('../tcpdf.php'),
      
  2. Kemudian pada file '../tcpdf.php' kita akan melihat file yang akan diincludekan berikut class utama TCPDF
    // TCPDF configuration
    require_once(dirname(__FILE__).'/tcpdf_autoconfig.php');
    // TCPDF static font methods and data
    require_once(dirname(__FILE__).'/include/tcpdf_font_data.php');
    // TCPDF static font methods and data
    require_once(dirname(__FILE__).'/include/tcpdf_fonts.php');
    // TCPDF static color methods and data
    require_once(dirname(__FILE__).'/include/tcpdf_colors.php');
    // TCPDF static image methods and data
    require_once(dirname(__FILE__).'/include/tcpdf_images.php');
    // TCPDF static methods and data
    require_once(dirname(__FILE__).'/include/tcpdf_static.php');

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    /**
     * @class TCPDF
     * PHP class for generating PDF documents without requiring external extensions.
     * TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br>
     * @package com.tecnick.tcpdf
     * @brief PHP class for generating PDF documents without requiring external extensions.
     * @version 6.2.8
     * @author Nicola Asuni - info@tecnick.com
     */
    class TCPDF {
    ....
       
  3. Pada 'example_001.php' perhatikan baris be:
    // create new PDF document
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

    Di sini kita akan membuat object baru  dari class TCPDF. Pada argument kita melihat ada contant yang dimasukkan dan belum tentu constant tersebut sesuai yang kita inginkan. Kita dapat menggantinya dengan nilai lain sebagai contoh kita dapat mungkin ingin menggunakan kertas Legal maka kita dapat mengganti constant PDF_PAGE_FORMAT dengan 'LEGAL'. Tetapai bagaimana kita tahu mengenai informasi 'LEGAL' ini ?

    Informasi kertas 'LEGAL' ini terdapat pada '/include/tcpdf_static.php' :
        public static $page_formats = array(
    ...
            'LEGAL'                  => array(  612.000,  1008.000), // = (  216 x 356  ) mm  = (  8.50 x 14.00 ) in
    ...

    Kita juga dapat mengganti constant-constant yang lain sesuai kebutuhan dengan nilai yang ada di '/include/tcpdf_static.php'.
      
  4. Pada 'example_001.php' perhatikan baris berikutnya:
    // set default header data
    $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));

    Di sini kita akan membuat dapat pada header menggunakan method SetHeaderData. Jika kita ingin mempelajari lebih lanjut mengenai method SetHeaderData ini, kita dapat mengunjungi
    http://www.tcpdf.org/doc/code/classTCPDF.html dilanjutkan ke http://www.tcpdf.org/doc/code/classTCPDF.html#a83795ec8999b91ef291c34d63209c8f2 .

    Kita dapat mempelajari function-function yang lain dengan cara yang sama.
     
  5. Lanjutkan pada baris-baris selanjutnya seperti langkah 4.
      
  6. Mengenai <<<EOD
    Kita mungkin belum mengenal <<<EOD pada PHP. Bentuk <<<EOD merupakan cara pendefinisian string menggunakan metode Heredoc. Metode Heredoc dalam PHP dapat dibaca di 
    http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
      
  7. Hasilnya dapat dilihat pada http://aris.proweb.asia/tcpdf1/examples/example_001.php dengan gambar seperti di bawah ini:

     
  8. Demo mengenai PDF yang  dihasilkan oleh TCPDF dapat dilihat di http://aris.proweb.asia/tcpdf1/examples/.

Kunjungi www.proweb.co.id untuk menambah wawasan anda.

Other Web Application Articles:
Kirim email dengan SMTP PHPMailer
Otomatis menuju HTTPS
Menelusuri PHP 5.6
Pemrograman htaccess Apache
Membatasi akses membaca PDF
Memahami TCPDF
Memindahkan item combo box dengan jQuery
Mencari provider jasa hosting yang tepat
Menyimpan data isi form di browser
Membandingkan AngularJS dengan jQuery
Mengatasi masalah print pada Bootstrap