Cara Membuat Cetak Sederhana di Codeigniter 3 dengan TCPDF Webserver Apache


Assalamualaikum Wr.Wb...
dengan diberikan nikmat dan rezeki dari Allah SWT, saya Mr.GagalTotal666 akan
berbagi kepada anda yaitu tentang Cara Membuat Cetak Sederhana
di Codeigniter 3 dengan TCPDF Webserver Apache.

Laporan/Report dalam bentuk PDF sudah menjadi kewajiban dalam
membuat sebuah aplikasi. Ada banyak library PHP yang tersedia
untuk membuat laporan PDF, salah satunya adalah TCPDF dan sebagainya.
Bagusnya lagi kita bisa membuat laporan PDF dengan tag HTML.

ditutorial kali ini saya akan membahas cara membuat laporan PDF sederhana,
dan laporan PDF dimana data diambil dari table database MySQL.

persiapan :

- codeigniter versi 3.10 dan versi apa saja
- download library TCPDF [disini] atau [disini]

dan pastikan juga webserver anda sudah lengkap modul package PHP nya,
oke langsung saja ikut langkah berikut

kalau sudah mendownload file TCPDF nya, letakan file TCPDF
di directory application/libraries


buka text editor sesuai selera anda masing-masing, disini saya menggunakan
text editor atom.., kemudian buat file Pdf.php, untuk nama file nya bebas kok
tidak harus nama PDF, di folder libraries (application/libraries/Pdf.php).

contoh isi source code file Pdf.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once dirname(__FILE__) . '/tcpdf/tcpdf.php';
class Pdf extends TCPDF
{
    function __construct()
    {
        parent::__construct();
    }
}
/* End of file Pdf.php */
/* Location: ./application/libraries/Pdf.php */


buat model di directory application/models/Laporan_model.php

contoh source code isi file Laporan_model.php

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

class Laporan_model extends CI_Model {

    public function get_all()
    {
        $query = $this->db->get('atletprofile');
        return $query->result_array();
    }
}
?>

contoh gambar


selanjut nya Buat Controller file Laporan.php (controllers/Laporan.php)
untuk nama file juga bebas kok terserah anda mau menamakan nya apa
saya ingatkan kembali, untuk di linux server buat controller nya pastikan
nama file depan nya huruf besar, contoh : Laporan.php
karena di linux server sensitif kalau seperti ini laporan.php, oke lanjut

contoh source code isi file Laporan.php atau Atlet.php

<?php
class Atlet extends CI_Controller{
function __construct(){
parent::__construct();
        $this->load->library('Pdf');
$this->load->model('Atlet_model');
$this->load->library('upload');
}
public function cetak_atlet()
{
$data['atlet'] = $this->Atlet_model->get_all();
$this->load->view('atlet/cetak_atlet', $data);
}

variabel $data['atlet'] ini untuk mengambil data di table atletprofile
yang berada di file Laporan_model.php

$this->load->view ini untuk memview data atau untuk menampilkan data
dari file directory views...

selanjut nya buat file untuk menampilkan data nya
buat di directory application/views/cetak_laporan.php


contoh source code cetak_laporan.php

<?php
// Include the main TCPDF library (search for installation path).
base_url('libraries/tcpdf/tcpdf.php');
// Extend the TCPDF class to create custom Header and Footer
class MYPDF extends TCPDF {
    //Page header
    public function Header() {
        // Logo
        $image_file = K_PATH_IMAGES.'kop.png';
        $this->Image($image_file, 10, 8, 190, '', 'PNG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font
        $this->SetFont('helvetica', 'B', 20);
        // Title
        $this->Cell(0, 15, '', 0, false, 'C', 0, '', 0, false, 'M', 'M');
    }
    // Page footer
    public function Footer() {
        // Position at 15 mm from bottom
        $this->SetY(-15);
        // Set font
        $this->SetFont('helvetica', 'I', 12);
        // Page number
        $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
    }
}
// create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Author');
$pdf->SetTitle('Data Atlet Dispora');
$pdf->SetSubject('Dispora');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
    require_once(dirname(__FILE__).'/lang/eng.php');
    $pdf->setLanguageArray($l);
}
// ---------------------------------------------------------
// set font
$pdf->SetFont('times', '', 12);
// add a page
$pdf->AddPage();
// set some text to print
$i=0;
$html='<br><br><br><br><br>
<h3>Data Atlet Dispora</h3>
<table cellspacing="2" bgcolor="#666666" cellpadding="0">
<tr bgcolor="#ffffff">
<th width="5%" align="center">No</th>
<th width="22%" align="center">Nomer Induk Atlet</th>
<th width="15%" align="center">Nama Atlet</th>
<th width="15%" align="center">Cabor</th>
<th width="12%" align="center">Umur</th>
<th width="15%" align="center">Kota</th>
<th width="15%" align="center">Jenis Kelamin</th>
</tr>';
foreach ($atlet as $row)
{
$i++;
$html.='<tr bgcolor="#ffffff">
<td align="center">'.$i.'</td>
<td align="center">'.$row['id_atlet'].'</td>
<td align="center">'.$row['nama_lengkap'].'</td>
<td align="center">'.$row['cabor'].'</td>
<td align="center">'.$row['usia'].'</td>
<td align="center">'.$row['kota'].'</td>
<td align="center">'.$row['jenis_kelamin'].'</td>
</tr>';
}
$html.='</table>';
// print a block of text using Write()
$pdf->writeHTML($html, true, false, true, false, '');
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output('cetak_atlet.pdf', 'I');
//============================================================+
// END OF FILE
//============================================================+

dibagian header terdapat ada variabel $images_file
nah fungsi itu untuk mengasih logo seperti hasil cetakan kop surat
untuk menaruh file image di tcpdf nya letakan
di directory tcpdf/examples/images

variabel $html ini isi dari writeHTML, anda bisa ubah ga harus $html
bebas kok mau dinamakan variabel nya apa saja

untuk di bagian output nya, $pdf->Output('cetak_atlet.pdf', 'I');
ubah nama nya sesuai keingnan anda hasil cetak nya...


kalau sudah semua save, dan buka di browser
contoh alamat url atau base_url di saya

127.0.0.1/atlet/atlet/cetak_laporan


oke mungkin itu saja mengenai cetak laporan sederhana di codeigniter 3
dengan TCPDF, kalau ada kesalahan dan kekurangan nya mohon berikan
masukan nya ya ^_^

sekian dan semoga bermanfaat...

Wasalamualaikum Wr.Wb...

Post a Comment

0 Comments