cara convert html ke pdf di codeigniter

Cara Convert HTML ke PDF di Codeigniter

Pada artikel ini, Anda akan belajar tentang cara membuat file pdf di Codeigniter dari html menggunakan library dompdf. PDF adalah format yang paling banyak digunakan untuk menghasilkan faktur di aplikasi web. File PDF menyediakan cara yang mudah dan ramah pengguna untuk mengunduh kumpulan catatan dalam file format pdf.

Sebelum mengunduh konten rekaman data web dalam format pdf, konten perlu dikonversi dari HTML ke PDF. Jika Anda sedang menggunakan Codeigniter maka Anda mendapatkan masalah bagaimana melakukannya. Tetapi dalam posting ini saya akan membagikan kepada Anda contoh yang sangat sederhana untuk mengonversi html ke pdf menggunakan library DomPDF.

Dompdf adalah perpustakaan PHP yang membantu menghasilkan file PDF dari konten data HTML. Sangat mudah untuk mengonversi HTML ke PDF dalam PHP dengan Dompdf.

Langkah 1: Unduh Fresh Codeigniter 3

Pada langkah pertama kita perlu mengunduh versi baru Codeigniter 3, Setelah berhasil mengunduh, ekstrak bersih aplikasi Codeigniter 3 baru. jadi jika Anda belum mengunduh maka unduh dari sini: Unduh Codeigniter 3.

Langkah 2: Unduh pustaka dompdf dari GitHub Dompdf:

Selanjutnya, mari unduh perpustakaan dompdf dari sini : Klik Disini untuk mengunduh dompdf. Setelah mengunduh, ekstrak ke folder “application/libraries” dan ganti namanya menjadi “dompdf”.

Buat file pdf.php di bawah folder “application/libraries” dan paste kode berikut:

<?php defined('BASEPATH') OR exit('No direct script access allowed');
 
// reference the Dompdf namespace
use Dompdf\Dompdf;
 
class Pdf
{
    public function __construct(){
        
        // include autoloader
        require_once dirname(__FILE__).'/dompdf/autoload.inc.php';
        
        // instantiate and use the dompdf class
        $pdf = new DOMPDF();
        
        $CI =& get_instance();
        $CI->dompdf = $pdf;
        
    }
}
?>

Langkah 3: Tambah Method Controller

Pada langkah ini kita perlu menambahkan method “generatepdf” pada welcome controller, Jadi mari kita tambahkan dengan kode berikut. Anda hanya perlu menyalin file pengontrol welcome.php di aplikasi/controllers/Welcome.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
 
class Welcome extends CI_Controller {
 
 
  /**
    * Get All Data from this method.
    *
    * @return Response
   */
   public function index()
   {
	$this->load->view('welcome_message');
   }
 
 
   /**
    * Get Download PDF File
    *
    * @return Response
   */
   function convertpdf(){
 
 
	// Get output html
        $html = $this->output->get_output();
        
        // Load pdf library
        $this->load->library('pdf');
        
        // Load HTML content
        $this->pdf->loadHtml($html);
        
        // (Optional) Setup the paper size and orientation
        $this->pdf->setPaper('A4', 'landscape');
        
        // Render the HTML as PDF
        $this->pdf->render();
        
        // Output the generated PDF (1 = download and 0 = preview)
        $this->pdf->stream("welcome.pdf", array("Attachment"=>0));
   }
}

Langkah-4: Tambahkan Route

Kemudian, mari tambahkan route berikut pada file routes.php Anda di application/config/routes.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
 
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['generatepdf'] = "welcome/convertpdf";

Langkah 5: Tambahkan View

Sekarang pada langkah terakhir kita perlu membuat file view “generatepdf.php” untuk menghasilkan file pdf. Jadi, Anda harus menyalin kode di bawah ini dan membuat di folder tampilan di application/views/generatepdf.php

<!DOCTYPE html>
<html>
<head>
	<title>Codeigniter 3 - Generate PDF from view using dompdf library with example</title>
</head>
<body>
 
 
<h1>Codeigniter 3 - Generate PDF from view using dompdf library with example</h1>
<table style="border:1px solid red;width:100%;">
	<tr>
		<th style="border:1px solid red">Id</th>
		<th style="border:1px solid red">Name</th>
		<th style="border:1px solid red">Email</th>
	</tr>
	<tr>
		<td style="border:1px solid red">1</td>
		<td style="border:1px solid red">Jhon</td>
		<td style="border:1px solid red">[email protected]</td>
	</tr>
	<tr>
		<td style="border:1px solid red">2</td>
		<td style="border:1px solid red">Lucy</td>
		<td style="border:1px solid red">[email protected]</td>
	</tr>
</table>
 
</body>
</html>

Sekarang Anda dapat membuka URL di bawah ini di browser Anda:

http://localhost:8000/generatepdf

Jika Anda berada di server langsung:

http://namadomain.com/generatepdf

Metode Dompdf yang Berguna

Berikut ini adalah beberapa metode pustaka Dompdf yang berguna untuk mengimplementasikan fungsionalitas konversi HTML ke PDF.

loadHtml(): Memuat konten HTML.

  • $str (string) – Required. Tentukan HTML yang akan dimuat.
  • $encoding (string) – Optional. Tentukan pengkodean.

loadHtmlFile(): Memuat konten dari file HTML.

  • $file (string) – Required. Tentukan jalur file untuk dimuat.

output(): Mengembalikan PDF sebagai string.

  • $options (array) – Optional. Tentukan apakah kompresi aliran konten akan diaktifkan. (kompres => 1 atau 0)

render(): Merender HTML ke PDF.

setBasePath(): Menyetel jalur dasar untuk menyertakan eksternal stylesheets dan gambar.

  • $basePath (string) – Jalur dasar yang akan digunakan saat memuat URL sumber daya eksternal.

setPaper(): Mengatur ukuran & orientasi kertas.

  • $size (string|array) – ‘letter’, ‘legal’, ‘A4’, dll.
  • $orientation (string) – ‘potret’ atau ‘lanskap’.

stream(): Streaming PDF ke klien.

  • $filename (string) – Tentukan nama file (tanpa ekstensi .pdf).
  • $options (array) – ‘compress’ => 1 atau 0 – aktifkan kompresi aliran konten. ‘Lampiran’ => 1 = unduh atau 0 = pratinjau

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top