Cara Cetak Pdf di Codeigniter

Cara Cetak Pdf di Codeigniter dengan Dompdf
Masdita.com, Hallo sobat semua di tutorial kali ini saya akan membahas mengenai cara cetak pdf di codeigniter, bagi sobat yang baru belajar bagaimana sih mencetak pdf di codeigniter? Tentunya sebelum langkah lebih jauh ada baiknya sobat belajar dulu dasar - dasar codeigniter. Nah tutorial ini sangat cocok sekali buat sobat, karena biasanya cetak pdf dibutuhkan untuk mereport kerjaan yang ada disistem agar bisa di print out sebagai bukti yang otentik ya sob. Selain bukti otentik cetak pdf juga memudahkan kita dalam berbagai hal semisal jika kita sudah mendownload pdf nya otomatis kita tak usah buka-buka lagi sistem kita untuk mengetahui data-data yang ada disana ya sob.
Oke sob disini saya menggunakan library dompdf untuk mencetak pdf nya ya sob. Kenapa menggunakan dompdf? Ya sebetulnya simple aja sih karena saya sudah sering menggunakan dompdf, dari pada saya nyoba yang lain dan bingung mending saya gunain yang sudah pernah sebelumnya ya sob hehe.

Sebelum kita memulainya ditutorial saya sebelumnya juga sudah membahas mengenai cara menghilangkan index.php di codeigniter ya sob, dan tutorial kali ini saya akan melanjutkan dari tutorial sebelumnya, jadi buat sobat yang belum baca tutorial saya yang sebelumnya, sobat mending baca dulu ya biar nggak bingung hehe.
Kita letss go saja ya sob, langkah-langkah apa saja yang harus dilakukan untuk mencetak pdf di codeigniter

1. Buat database
Kita buat database dengan nama ci di phpmyadmin, sobat bisa copas kode di bawah untuk di copy pastekan di sql sobat ya

-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 11 Feb 2019 pada 06.07
-- Versi Server: 10.1.16-MariaDB
-- PHP Version: 5.6.24

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `ci`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `siswa`
--

CREATE TABLE `siswa` (
  `id_siswa` int(11) NOT NULL,
  `nama` varchar(25) NOT NULL,
  `alamat` text NOT NULL,
  `kelas` varchar(3) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `siswa`
--

INSERT INTO `siswa` (`id_siswa`, `nama`, `alamat`, `kelas`) VALUES
(2, 'kaka', 'rembang', 'XI'),
(3, 'dita', 'rembang', 'XI'),
(4, 'ida', 'rembang', 'X'),
(5, 'kirun', 'Juana', 'XII');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `siswa`
--
ALTER TABLE `siswa`
  ADD PRIMARY KEY (`id_siswa`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `siswa`
--
ALTER TABLE `siswa`
  MODIFY `id_siswa` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

2. Buat libaray dengan Dompdf_gen.php
Letakkan skripnya di folder application/libraries lalu buat file dengan nama Dompdf_gen.php
Dompdf_gen.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Dompdf_gen {
public function __construct() {
require_once APPPATH.'third_party/dompdf/dompdf_config.inc.php';
$pdf = new DOMPDF();
$CI =& get_instance();
$CI->dompdf = $pdf;
}
}

3. Download library Dompdf_gen.php
Sobat bisa download librarynya di sini , setelah itu extract dan taruh extractan tadi dialam folder application/third_party/
Cara Cetak Pdf di Codeigniter dengan Dompdf
(Struktur penempatan library)
Nah begitulah tampilan struktur penempatan library nya

4. Buat file controller bernama Cetak.php
Cetak.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Cetak extends CI_Controller {
function __construct(){
parent::__construct();
}
public function index(){
$data = array(
'record' => $this->db->get('siswa')
);
$this->load->view('v_index',$data);
}
public function cetak_pdf() {
    // load view yang akan digenerate atau diconvert
    $data = array(
      'record'  => $this->db->query("SELECT * FROM siswa")
    );
    $this->load->view('v_cetak',$data);
    // dapatkan output html
    $html = $this->output->get_output();
    // Load/panggil library dompdfnya
    $this->load->library('dompdf_gen');
    // Convert to PDF
    $this->dompdf->load_html($html);
    $this->dompdf->render();
    //utk menampilkan preview pdf
    $sekarang=date("d:F:Y:h:m:s");
    $this->dompdf->stream("pendaftaran".$sekarang.".pdf",array('Attachment'=>0));
    //atau jika tidak ingin menampilkan (tanpa) preview di halaman browser
    //$this->dompdf->stream("welcome.pdf");
}
}

Saya akan mejeaskan sedikit tentang kode diatas ya sob
public function index()
kita membuat function index untuk menampilkan halaman awal atau index ketika controller Cetak di jalankan
$data = array( 'record' => $this->db->get('siswa') );
Artinya kita mengambil data dari tabel siswa yang di rubah ke array, ‘record’ adalah nama array yang nanti untuk memanggil ketika dilempar ke view
$this->load->view('v_cetak',$data);
ketika meload halaman view dengan nama v_cetak, dan terdapat $data yang diambil dari array diatasnya, sehingga nantinya datanya bisa dilempar ke view
public function cetak_pdf()
kita membuat function cetak_pdf untuk menampilkan cetak pdf kita saat dihalaman di klik tombol cetak
$data = array( 'record'  => $this->db->query("SELECT * FROM siswa"));
kita mengambil data dari tabel siswa ketika tombol cetak di klik


$this->load->view('v_cetak',$data);
setelah kita berhasil mendapatkan data dari tabel siswa kita akan di lembar ke tampilan v_cetak.php
$html = $this->output->get_output();
Mendapat output berupa html
$this->load->library('dompdf_gen');
Memanggil libarary dari dompdf generator
    $this->dompdf->load_html($html);
    $this->dompdf->render();
Untuk menconvert html menjadi pdf
    $sekarang=date("d:F:Y:h:m:s");
    $this->dompdf->stream("pendaftaran".$sekarang.".pdf",array('Attachment'=>0));
Untuk menampilkan privewe di pdf

5. Setting config 
Sobat buka folder application/config/config.php untuk setting confignya dulu ya sob agar index.php nya bisa dihilangin, agar lebih simple, dan enak dibaca

6. Setting database.php 
Sobat buka folder application/config/database.php setting sesuai database sobat ya, jika sobat belum tau sobat bisa baca artikel yang sudah saya buat sebelumnya tentang cara setting database.php

7. Buat file v_index.php di view
v_index.php
<!DOCTYPE html>
<html lang="en">
 <head>

    <title>Cetak PDF</title>

</head>
<style type="text/css">
td {
padding: 5px;
}
</style>
<body  style="font-family:Times New Roman;font-size:12px">
<center><h1>Cetak pdf</h1></center>
<table border="1">
<tr>
<td>No</td>
<td>Nama</td>
<td>Alamat</td>
<td>Kelas</td>                                 
</tr>
<?php $no=1; foreach($record->result() as $row){ ?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $row->nama ?></td>
<td><?php echo $row->alamat ?></td>
<td><?php echo $row->kelas ?></td>                                       
</tr>
<?php } ?>
</table>
</body>
</html>

Saya akan jelaskan untuk kode diatas sedikit ya sob, saya anggap untuk pembuatan tabel pada html sobat semua sudah bisa ya, kalau ada yang belum bisa sobat bisa lihat tutorial saya sebelumnya tentang cara membuat tabel di html
<?php $no=1; foreach($record->result() as $row){ ?>
Digunakan untuk melakuakan perulangan data yang diambil dari nama array yang ada di file controller tadi yang kita beri nama ‘record’. Setelah kita mengambil array dari ‘record’ kita result() untuk menampilkan hasilnya lalu di as $row yang artinya di beri nama lain $row.
<td><?php echo $row->nama ?></td>
Nama adalah nama salah satu field yang ada di tabel siswa, maka  dari itu kita memanggil $row->nama maka akan tampil data nama yang ada di field siswa
<?php } ?>
Jangan lupa dengan kode satu ini karena tadi diatas sudah ada foreach dengan kurung kurawal buka ‘{‘ maka kita juga harus menutupnya dengan kurung kurawal tutup ‘}’ di akhir baris atau <tr> dalam html

8. Buat file v_cetak.php di view
v_cetak.php
<!DOCTYPE html>
<html lang="en">
 <head>

    <title>Cetak PDF</title>

</head>
<style type="text/css">
td {
padding: 5px;
}
</style>
<body  style="font-family:Times New Roman;font-size:12px">
<center><h1>Cetak pdf</h1></center>
<table border="1">
<tr>
<td>No</td>
<td>Nama</td>
<td>Alamat</td>
<td>Kelas</td>                                 
</tr>
<?php $no=1; foreach($record->result() as $row){ ?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $row->nama ?></td>
<td><?php echo $row->alamat ?></td>
<td><?php echo $row->kelas ?></td>                                       
</tr>
<?php } ?>
</table>
</body>
</html>
Sebenarnya v_cetak dan v_index itu sama bedanya v_cetak diperuntukkan untuk membuat tampilan di pdf yang bisa kita buat sesuai kebutuhan

9. Uji coba web
Mari kita coba jalankan dengan http://localhost/ci/cetak
Cara Cetak Pdf di Codeigniter dengan Dompdf

10. Uji coba cetak
Selanjutnya kita coba untuk mengklik tombol cetak
Cara Cetak Pdf di Codeigniter dengan Dompdf


Nah ternyata juga sudah berhasil untuk menjadikan pdf, dari sini kita bisa print ataupun simpan langsung secara pdf ya sob

Nah gimana sob sudah bisa kan sekarang kita untuk cetak pdf, sobat juga bisa belajar cara membuat register di codeigniter, semoga tutorial yang saya berikan bisa bermanfaat ya. Okee sob sekian ya tutorial cara cetak pdf di codeigniter, simak terus masdita.com untuk mendapatkan update-update an terbaru tentang pemrograman, tips dan trik serta info menarik lainnya.

4 Komentar untuk "Cara Cetak Pdf di Codeigniter"

  1. ini gimana yah kalo mau tampilin preview cetak yang ada pada gambar paling bawah ?

    BalasHapus
    Balasan
    1. tinggal tambahkan saja library pdf nya gan di codingnya

      Hapus
  2. kalo ingin nampilin dari 2 database di satu page cetak nya gimana ya?

    BalasHapus
  3. Tombol Cetaknya mana gan?

    BalasHapus

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel