Convert HTML into PDF with TCPDF

Convert HTML into PDF with TCPDF

Kali ini admin akan membuat cara convert HTML menjadi PDF. Cukup sederhana dengan bantuan class yang disediakan oleh TCPDF. Class ini merupakan PHP library untuk menghasilkan dokumen PDF dengan cepat.

Silakan download class TCPDF pada websitenya atau via github.

Persiapan

  • buat file baru misal view.php
  • tcpdf/examples/lang/eng.php
  • tcpdf/tcpdf.php

Kemudian include class tcpdf yang sebelumnya di download

include_once "tcpdf/examples/lang/eng.php";
include_once "tcpdf/tcpdf.php";

Jangan lupa panggil class TCPDF, untuk function (PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT) atau function lainnya bisa di cek pada file tcpdf_autoconfig.php

$obj_pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$title = "Convert PDF";
$obj_pdf->SetTitle($title);	
$obj_pdf->SetFont('Tahoma', '', 10);
$obj_pdf->SetMargins(20, 30, 20); // PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT
$obj_pdf->SetFooterMargin(PDF_MARGIN_FOOTER );
$obj_pdf->setPrintHeader(false);
$obj_pdf->setPrintFooter(false);
$obj_pdf->setFontSubsetting(false);
$obj_pdf->AddPage();

File lengkap view.php bisa di lihat dibawah ini.

<?php
include_once "tcpdf/examples/lang/eng.php";
include_once "tcpdf/tcpdf.php";
ob_start();

$obj_pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$title = "Convert PDF";
$obj_pdf->SetTitle($title);	
$obj_pdf->SetFont('Tahoma', '', 10);
$obj_pdf->SetMargins(20, 30, 20); // PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT
$obj_pdf->SetFooterMargin(PDF_MARGIN_FOOTER );
$obj_pdf->setPrintHeader(false);
$obj_pdf->setPrintFooter(false);
$obj_pdf->setFontSubsetting(false);
$obj_pdf->AddPage();

$html = <<<EOF
<!-- Main content -->
  <section class="invoice">
    <!-- title row -->
    <div class="row">
      <div class="col-xs-12">
        <h2 class="page-header">
          <i class="fa fa-globe"></i> AdminLTE, Inc.
          <small class="pull-right">Date: 2/10/2014</small>
        </h2>
      </div>
      <!-- /.col -->
    </div>
    <!-- info row -->
    <div class="row invoice-info">
      <div class="col-sm-4 invoice-col">
        From
        <address>
          <strong>Admin, Inc.</strong><br>
          795 Folsom Ave, Suite 600<br>
          San Francisco, CA 94107<br>
          Phone: (804) 123-5432<br>
          Email: info@almasaeedstudio.com
        </address>
      </div>
      <!-- /.col -->
      <div class="col-sm-4 invoice-col">
        To
        <address>
          <strong>John Doe</strong><br>
          795 Folsom Ave, Suite 600<br>
          San Francisco, CA 94107<br>
          Phone: (555) 539-1037<br>
          Email: john.doe@example.com
        </address>
      </div>
      <!-- /.col -->
      <div class="col-sm-4 invoice-col">
        <b>Invoice #007612</b><br>
        <br>
        <b>Order ID:</b> 4F3S8J<br>
        <b>Payment Due:</b> 2/22/2014<br>
        <b>Account:</b> 968-34567
      </div>
      <!-- /.col -->
    </div>
    <!-- /.row -->

    <!-- Table row -->
    <div class="row">
      <div class="col-xs-12 table-responsive">
        <table class="table table-striped">
          <thead>
          <tr>
            <th>Qty</th>
            <th>Product</th>
            <th>Serial #</th>
            <th>Description</th>
            <th>Subtotal</th>
          </tr>
          </thead>
          <tbody>
          <tr>
            <td>1</td>
            <td>Call of Duty</td>
            <td>455-981-221</td>
            <td>El snort testosterone trophy driving gloves handsome</td>
            <td>$64.50</td>
          </tr>
          </tbody>
        </table>
      </div>
      <!-- /.col -->
    </div>
    <!-- /.row -->
  </section>
  <!-- /.content -->
EOF;

echo $html;
ob_end_flush();
$content = ob_get_contents();

ob_end_clean();
$obj_pdf->writeHTML($content, true, false, true, false, '');
$obj_pdf->Output('invoice.pdf', 'I');
exit(0);

Penjelasan :

$content = ob_get_contents(); untuk menampilkan data echo $html; pada baris sebelumnya.

Pemanggilan page dengan memanggil $obj_pdf->AddPage();

Metode Output() selain penamaan file dan parameter untuk mendefinisikan karakter yang mewakili tujuan untuk mengirim dokumen:

“I” mengirim file untuk ditampilkan di browser.
“D” mengirim file ke browser dan memaksa download file.
“F” simpan ke file server lokal.
“S” mengembalikan dokumen sebagai string.

ob_start ():

  1. Fungsi ini akan mengaktifkan buffering output. Saat buffering ON tidak ada output yang dikirim dari skrip (selain header), sebagai gantinya output disimpan dalam buffer internal.
  2. Fungsi mengembalikan TRUE pada kesuksesan dan FALSE pada kegagalan.

ob_get_clean ():

  1. Mendapat konten buffer keluaran dan menghapus buffer keluaran saat ini.
  2. Mengembalikan konten buffer keluaran dan buffering keluaran akhir. Jika buffering keluaran tidak aktif maka FALSE dikembalikan.
  3. Ob_get_clean () mengeksekusi ob_get_contents () dan ob_end_clean ().

ob_end_flush () dan ob_end_clean ():

  • Yang pertama mengakhiri buffer dan mengirim semua data ke output, dan yang terakhir mengakhiri buffer tanpa mengirimnya ke output.

Sumber dan Sample TCPDF

Demikian yang bisa admin berikan pada tulisan kali ini, terima kasih. Salam barbar!!

Author Profile

blank
Ricki K
Hi my name is Ricki, I am a blogger from Indonesia. Founder of erkamoo.com, Besides creating Web Applications, I also write about Blogging Tips and Tutorials on Programming, Databases, HTML.