Utilities 04 Aug 2021 280 views 0 komentar

Mengubah HTML menjadi PDF di Codeigniter Framework Menggunakan Library DomPDF

Mengubah HTML menjadi PDF di Codeigniter Framework Menggunakan Library DomPDF

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

 

Kemudian buat satu file baru dengan nama dompdf_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 /><code class="language-php">\t// Dompdf namespace</code><br /><code class="language-php">\tuse Dompdf
Dompdf;</code><br /><code class="language-php">\tclass Dompdf_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__).'/dompdf_0.8.3/autoload.inc.php';</code><br /><code class="language-php">\t        $pdf = new DOMPDF();</code><br /><code class="language-php">\t        $CI =& get_instance();</code><br /><code class="language-php">\t        $CI->dompdf = $pdf;</code><br /><code class="language-php">\t    }</code><br /><code class="language-php">\t}</code><br /><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 domPDF</code><br /><code class="language-php">    function dom_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('dompdf_lib');</code><br /><code class="language-php">        $ci->dompdf->loadHtml($html);</code><br /><code class="language-php">        // setup size</code><br /><code class="language-php">        $ci->dompdf->setPaper('A4', 'portrait');</code><br /><code class="language-php">        // Render the HTML as PDF</code><br /><code class="language-php">        $ci->dompdf->render();</code><br /><code class="language-php">        // Output  PDF (1 = download and 0 = preview)</code><br /><code class="language-php">        $ci->dompdf->stream($name_file, array("Attachment" => 0));</code><br /><code class="language-php">    }</code><code class="language-php"></code><br /><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');<br /></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    \tdom_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><span style="font-size: 1em; word-spacing: normal;">", $data);</span><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 DomPDF?

DomPDF adalah library PHP populer untuk mengkonversi HTML dan CSS menjadi PDF. Library ini mendukung sebagian besar spesifikasi CSS2.1 dan beberapa fitur CSS3.

Langkah 1: Instal DomPDF

Menggunakan Composer

composer require dompdf/dompdf

Langkah 2: Implementasi di CodeIgniter

<?php
require_once APPPATH . 'third_party/dompdf/vendor/autoload.php';

use Dompdf\Dompdf;

$dompdf = new Dompdf();
$html = '<h1>Invoice #001</h1>';
$html .= '<table border="1">';
$html .= '<tr><td>Item</td><td>Harga</td></tr>';
$html .= '<tr><td>Produk A</td><td>Rp 100.000</td></tr>';
$html .= '</table>';

$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream('invoice.pdf');
?>

Kelebihan DomPDF

  • Mendukung CSS inline dan external stylesheet
  • Bisa menggunakan custom font
  • Mendukung gambar dari URL atau base64
  • Gratis dan open source
Tags Artikel: #Codeigniter

Bagikan artikel ini:

Komentar (0)

Belum ada komentar. Jadilah yang pertama memberikan tanggapan!

Tinggalkan Komentar