Membuat Laporan PDF dengan Dompdf di Codeigniter 3 tanpa Composer


Membuat Laporan PDF dengan Dompdf di Codeigniter 3  tanpa Composer


Halo, kembali lagi ditutorial codekop,  kali ini saya ingin posting kembali hal yang berkaitan dengan dompdf, versi postingan kali ini adalah Membuat Laporan PDF dengan Dompdf di Codeigniter 3  tanpa composer, jadi pada tutorial kali ini kita akan coba membuat laporan pdf dompdf tanpa composer, karena berhubung postingan sebelumnya dengan composer, sekarang kita praktekan yang tanpa composernya.

Langsung aja kita mulai

Pertama kita siapkan file CodeIgniter versi 3.1.11

seperti biasa kita akan siapkan file codeigniter nya, dan extract di htdocs kamu, codeigniter bisa didapat pada situs resminya yaitu https://codeigniter.com/download , dan pilih CodeIgniter versi 3.1.11

   

Download Dompdf

pada langkah ini kita akan download dompdfnya di link github yakni https://github.com/dompdf/dompdf/ 

   

 

Extract Dompdf di folder libraries CodeIgniter

setelah itu file dompdf yang kita download, extrack ke libraries CodeIgniter yang terletak di folder application/libraries

   

setelah selesai mengextrack dompdf ke folder libraries langkah selanjutnya kita membuat library untuk memanggil dompdf yang ada di composer

Siapkan dan Download Utils autoload.inc.php dan load_font.php dompdf

kita akan download autoload.inc.php dan load_font.php untuk menjalankan lib dompdfnya. link source : https://github.com/dompdf/utils 

   

Siapkan dan Download php-font-lib dan php-svg-lib

lalu siapkan php-font-lib dan php-svg-lib nya tanpa ini autoload.inc.php tidak akan berjalan karena autoload memanggil lib ini,

1. php-font-lib, link source : https://github.com/PhenX/php-font-lib 

     

2. php-svg-lib, link : https://github.com/PhenX/php-svg-lib 

   

 

setelah semua sudah disiapkan, kita akan extrack file tersebut didalam folder dompdf-master

Extract autoload.inc.php dan load_font.php didalam folder dompdf-master

langkah ini kita akan extrack utils-master.zip, dan keluarkan isi nya yaitu autoload.inc.php dan load_font.php, pindahkan ke dalam folder dompdf-master, atau lihat struktur pada folder berikut :

   

Extract php-font-lib dan php-svg-lib di dalam folder  dompdf-master/lib

langkah ini kita akan extrack php-font-lib-master.zip dan  php-svg-lib-master.zip, dan keluarkan isi nya dan rename folder tersebut menjadi php-font-lib dan php-sgv-lib, pindahkan ke dalam folder dompdf-master/lib, atau lihat struktur pada folder berikut :

   

Membuat Library Pdfgenerator.php

sekarang kita membuat library Pdfgenerator.php, untuk menjalankan dan memanggil dompdf yang terletak pada folder yang sama yaitu libraries, setelah itu letakan script di application/libraries/Pdfgenerator.php.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// panggil autoload dompdf nya
require_once 'dompdf-master/autoload.inc.php';
use Dompdf\Dompdf;
use Dompdf\Options;
class Pdfgenerator {
    public function generate($html, $filename='', $stream=TRUE, $paper = '', $orientation = '')
    {   
        $options = new Options();
        $options->set('isRemoteEnabled', TRUE);
        $dompdf = new Dompdf($options);
        $dompdf->loadHtml($html);
        $dompdf->setPaper($paper, $orientation);
        $dompdf->render();
        if ($stream) {
            $dompdf->stream($filename.".pdf", array("Attachment" => 0));
        } else {
            return $dompdf->output();
        }
    }
}

setelah kita membuat library untuk memanggil dompdfnya, kita akan membuat controller untuk memanggil library yang kita buat

Membuat Controller

pada langkah ini kita akan membuat controller untuk memanggil librarynya, buat file dengan namanya Pdfview.php, letakan script ini pada folder application/controller/Pdfview.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Pdfview extends CI_Controller {
    public function index()
    {
        // panggil library yang kita buat sebelumnya yang bernama pdfgenerator
        $this->load->library('pdfgenerator');
        
        // title dari pdf
        $this->data['title_pdf'] = 'Laporan Penjualan Toko Kita';
        
        // filename dari pdf ketika didownload
        $file_pdf = 'laporan_penjualan_toko_kita';
        // setting paper
        $paper = 'A4';
        //orientasi paper potrait / landscape
        $orientation = "portrait";
        
		$html = $this->load->view('laporan_pdf',$this->data, true);	    
        
        // run dompdf
        $this->pdfgenerator->generate($html, $file_pdf,$paper,$orientation);
    }
}

Setelah membuat controller, kita akan membuat file views.

Membuat Views

pada langkah ini kita akan mencoba membuat file laporan_pdf.php untuk mengisi data pdfnya dengan menggunakan html dan css, pada file views ini saya akan membuat laporan penjualan toko kita seperti pada tutorial dompdf yang kemarin, yang akan di generate ke pdf dengan dompdf, buat nama file laporan_pdf.php , Letakan script ini pada folder application/views/laporan_pdf.php

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title><?= $title_pdf;?></title>
        <style>
            #table {
                font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
                border-collapse: collapse;
                width: 100%;
            }

            #table td, #table th {
                border: 1px solid #ddd;
                padding: 8px;
            }

            #table tr:nth-child(even){background-color: #f2f2f2;}

            #table tr:hover {background-color: #ddd;}

            #table th {
                padding-top: 10px;
                padding-bottom: 10px;
                text-align: left;
                background-color: #4CAF50;
                color: white;
            }
        </style>
    </head>
    <body>
        <div style="text-align:center">
            <h3> Laporan PDF Toko Kita</h3>
        </div>
        <table id="table">
            <thead>
                <tr>
                    <th>No.</th>
                    <th>Nama Produk</th>
                    <th>Harga Jual</th>
                    <th>Terjual</th>
                    <th>Tanggal Transaksi</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td scope="row">1</td>
                    <td>Kacang Goreng</td>
                    <td>Rp5.000,-</td>
                    <td>1</td>
                    <td>25 Oktober 2020, 17:01:03</td>
                </tr>
                <tr>
                    <td scope="row">2</td>
                    <td>Kopi Hitam</td>
                    <td>Rp5.000,-</td>
                    <td>1</td>
                    <td>25 Oktober 2020, 16:01:03</td>
                </tr>
                <tr>
                    <td scope="row">3</td>
                    <td>Gorengan Bakwan</td>
                    <td>Rp3.000,-</td>
                    <td>3</td>
                    <td>25 Oktober 2020, 15:01:02</td>
                </tr>
                <tr>
                    <td scope="row">4</td>
                    <td>Nasi uduk</td>
                    <td>Rp14.000,-</td>
                    <td>2</td>
                    <td>25 Oktober 2020, 14:04:03</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

tahap ini sudah selesai, sekarang kita lakukan testing di web browser, disini file codeigniter, saya taruh di xampp

Running Project PDF dengan Browser

langsung aja kita testing dengan browser :

 

Akhir Kata…

Demikian tutorial seri Membuat Laporan PDF dengan Dompdf  di Codeigniter 3 tanpa composer Kita jumpa lagi di lain kesempatan, Semoga bermanfaat. Sampai Jumpa dan Terima Kasih.

Source

https://github.com/dompdf/dompdf/ 

https://github.com/dompdf/utils

https://github.com/PhenX/php-font-lib

https://github.com/PhenX/php-svg-lib

 

Related Search : 

#codeigniter 3 dompdf tanpa composer

#codeigniter 3 dompdf without composer

#codeigniter dompdf tanpa composer

#codeigniter dompdf tanpa composer

Artikel Di Update Pada : 27 Oktober 2020, 18:38
SHARE POST : Facebook Twitter Email Pinterest Print


Fauzan Falah

Penulis https://codekop.com/ , http://maswin.id/ | Github : https://github.com/fauzan1892/ | portfolio : https://fauzan.codekop.com/

Profil Penulis Semua Postingan


Komentar