Utilities 04 Aug 2021 313 views 0 komentar

Mengubah HTML menjadi PDF di Codeigniter Framework Menggunakan Library Html2pdf

Mengubah HTML menjadi PDF di Codeigniter Framework Menggunakan Library Html2pdf

Sebelum memulai download dahulu library Html2pdf disini lalu extract folder dan pindahkan ke dalam folder applicationlibraries 

Kemudian buat satu file baru dengan nama html2pdf_lib.php di folder applicationlibraries  dan copy syntax dibawah ini dan sesuaikan require_once dengan nama folder library yang tadi di extract.

<?php defined('BASEPATH') OR exit('No direct script access allowed');</code><br /><br /><code class="language-php">\t// Html2Pdf namespace</code><br /><code class="language-php">\tuse Spipu
Html2Pdf
Html2Pdf;</code><br /><code class="language-php">  \tuse Spipu
Html2Pdf
Exception
Html2PdfException;</code><br /><code class="language-php">  \tuse Spipu
Html2Pdf
Exception
ExceptionFormatter;</code><br /><br /><code class="language-php">\tclass Html2pdf_lib</code><br /><code class="language-php">\t{</code><br /><code class="language-php">\t    public function __construct(){   </code><br /><code class="language-php">\t        // require_once autoloader </code><br /><code class="language-php">\t        require_once dirname(__FILE__).'/html2pdf_5.2.2.0/vendor/autoload.php';</code><br /><code class="language-php">\t        $pdf = new Html2Pdf('P', 'A4', 'fr');</code><br /><code class="language-php">\t        $CI =& get_instance();</code><br /><code class="language-php">\t        $CI->html2pdf = $pdf;</code><br /><code class="language-php">\t    }</code><br /><code class="language-php">\t}</code><br /><code class="language-php">?>

Selanjutnya buat satu file baru dengan new_helper.php di folder applicationhelpers dan copy syntax dibawah ini :

<?php defined('BASEPATH') OR exit('No direct script access allowed');</code><br /><code class="language-php">    // generate htmlPDF</code><br /><code class="language-php">    function html_generate($name_file, $file_html, $data)</code><br /><code class="language-php">    {</code><br /><code class="language-php">        $ci = &get_instance();</code><br /><code class="language-php">        $data['data'] = $data;</code><br /><code class="language-php">        $ci->load->view($file_html, $data);</code><br /><code class="language-php">        // Get output html</code><br /><code class="language-php">        $html = $ci->output->get_output();</code><br /><code class="language-php">        // Load pdf library</code><br /><code class="language-php">        $ci->load->library('html2pdf_lib');</code><br /><code class="language-php">        ob_start();</code><br /><code class="language-php">        $content = $html;</code><br /><code class="language-php">        ob_clean();</code><br /><code class="language-php">        $ci->html2pdf->setDefaultFont('Arial');</code><br /><code class="language-php">        $ci->html2pdf->pdf->SetDisplayMode('fullpage');</code><br /><code class="language-php">        $ci->html2pdf->writeHTML($content);</code><br /><code class="language-php">        $ci->html2pdf->Output($name_file);</code><br /><code class="language-php">    }</code><br /><code class="language-php">?>

Dan Terakhir buat satu file controller dengan nama Export_pdf.php dan copy syntax dibawah ini :

<?php defined('BASEPATH') OR exit('No direct script access allowed');</code><br /><code class="language-php">\tclass Export_pdf extends CI_Controller {</code><br /><code class="language-php">\t\tfunction __construct() {</code><br /><code class="language-php">\t\t\tparent::__construct();</code><br /><code class="language-php">\t\t\t$this->load->helper(array('url', 'html', 'new'));</code><br /><code class="language-php">\t\t}</code><br /><br /><code class="language-php">\t\t function get_pdf_test(){</code><br /><code class="language-php">\t\t    $data = array(</code><br /><code class="language-php">\t\t        'title' => 'Add PDF | ERP',</code><br /><code class="language-php">\t\t        'remarks' => 'Pdf Sample'</code><br /><code class="language-php">\t\t    );</code><br /><code class="language-php">\t    \thtml_generate("welcome.pdf", "<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; font-size: medium; white-space: normal;">welcome_message</span>", $data);<br /></code><code class="language-php">\t  \t}</code><br /><code class="language-php">\t}</code><br /><code class="language-php">?>

Sampai disini proses mengubah html menjadi pdf sudah selesai dan hasil akhir akan menampilkan halaman welcome_message.php dalam bentuk pdf. Untuk selanjutnya silahkan di modifikasi sendiri sesuai dengan kebutuhan.

Selamat mencoba, terima kasih.

Apa itu Html2pdf?

Html2pdf adalah library PHP yang mengkonversi HTML menjadi PDF. Library ini sangat cocok untuk membuat laporan, invoice, atau dokumen lainnya dari template HTML.

Langkah 1: Instal Html2pdf

Menggunakan Composer

composer require spipu/html2pdf

Langkah 2: Implementasi di CodeIgniter

<?php
// Load library
require_once APPPATH . 'third_party/html2pdf/vendor/autoload.php';

// Buat instance
$html2pdf = new \Spipu\Html2Pdf\Html2Pdf('P', 'A4', 'en');

//
Set content HTML
$html = '<h1>Laporan Bulanan</h1>';
$html .= '<p>Isi laporan...</p>';
$html .= '<table>...</table>';

$html2pdf->writeHTML($html);
$html2pdf->output('laporan.pdf');
?>

Tips Penggunaan

  • Gunakan CSS inline untuk styling yang konsisten
  • Hindari CSS complex yang tidak didukung
  • Test dengan berbagai ukuran kertas (A4, Letter, dll)
  • Gunakan page break untuk mengontrol layout multi-halaman
Tags Artikel: #Codeigniter

Bagikan artikel ini:

Komentar (0)

Belum ada komentar. Jadilah yang pertama memberikan tanggapan!

Tinggalkan Komentar