Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Konversi HTML Ke PDF dengan Dompdf

Berhubung kemaren ada temen yang nanya bagaimana membuat file PDF menggunakan PHP ada baiknya saya tulis saja di blog ini sekalian buat referensi saya biar gak lupa, sebelum memulai alangkah baiknya saya sekedar mengingatkan bahwa PDF adalah format standar yang awalnya diciptakan oleh Adobe untuk mewakili teks dan gambar dalam dokumen, seperti faktur atau laporan dalam format PDF , sehingga dalam artikel ini kita akan membahas bagaimana kita dapat dengan mudah menghasilkan dokumen PDF menggunakan PHP .

Sebenarnya banyak library yang mampu menghasilkan mampu menghasilkan PDF dari HTML markup namun dalam tulisan saya ini saya hanya akan membahas sebuah library yang saya anggap mudah dalam penggunaannya yaitu DOMPDF. DOMPDF sendiri merupakan sebuah library yang mampu menghasilkan PDF dari HTML markup dan CSS styles dan hanya berfungsi untuk versi PHP 5.0 keatas.

DOMPDF tersedia di GitHub dan dapat diinstal dengan menggunakan Composer namun saya sarankan hanya menggunakan Git untuk menginstal DOMPDF karena lebih mudah. Jalankan perintah dibawah ini untuk mengunduh library DOMPFD

git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update

berikut sebuah contoh singkat yang akan menghasilkan PDF sederhana .

 <?php
set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dompdf");
 
require_once "dompdf_config.inc.php";
 
$dompdf = new DOMPDF();
 
$html = <<<'ENDHTML'
<html>
 <body>
  <h1>Hello Dompdf</h1>
 </body>
</html>
ENDHTML;
 
$dompdf->load_html($html);
$dompdf->render();
 
$dompdf->stream("hello.pdf");

Untuk menggunakan library DOMPDF , hal utama yang terpenting adalah memanggil
dompdf_config.inc.php yang berisi sebagian besar konfigurasi DOMPDF . Hal ini juga memuat sebuah autoloader dan file konfigurasi kustom di mana kita dapat mengganti parameter konfigurasi default. HTML markup diberikan sebagai string dengan metode load_html ( ). Atau , kita dapat memuat markup dari sebuah file atau URL menggunakan load_html_file ( ).
render ()sendiri berfungsi untuk membuat HTML ke PDF sedangkan fungsi stream() befungsi mengirim PDF yang dihasilkan untuk ditampilkan di browser.

Contoh diatas akan menghasilkan sebuah file PDF yang sangat sederhana, tapi itu sangat tidak praktis menurut saya karena dalam kenyataannya kita akan sering ingin mengatur ukuran kertas, orientasi halaman, pengkodean karakter, dll dalam hal ini ada beberapa konfigurasi yang bisa kita atur untuk membuat DOMPDF lebih cocok untuk kebutuhan kita. semua fungsi tersebut terdapat didalam file dompdf_config.inc.php. Ada beberapa pengaturan penting yang wajib kita ketahui diantaranya :
  • DOMPDF_DEFAULT_PAPER_SIZE - mengatur ukuran kertas default untuk dokumen PDF. Ukuran kertas yang didukung dapat ditemukan di include / cpdf_adapter.cls.php (nilai default adalah "letter"). 
  • DOMPDF_TEMP_DIR - menentukan direktori sementara yang digunakan oleh DOMPDF. Pastikan lokasi ini ditulis oleh akun web server. 
  • DOMPDF_UNICODE_ENABLED - set apakah PDF menggunakan Unicode font (nilai default true). 
  • DOMPDF_ENABLE_REMOTE - memungkinkan dimasukkannya gambar atau CSS  (nilai default adalah false). 
  • DEBUG_LAYOUT - apakah akan membuat sebuah kotak di sekitar setiap blok HTML dalam file PDF yang berguna untuk debugging tata letak (nilai default adalah false).
Contoh diatas hanya akan menampilkan dokumen PDF pada browser, namun jika kita ingin menyimpan dokumen PDF yang dihasilkan ke disk selain mengirimnya ke browser. Berikut caranya:
 
<?php
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$output = $dompdf->output();
file_put_contents("/path/to/file.pdf", $output);

Dari contoh ini kita menggunakan fungsi output () yang mengembalikan PDF sebagai string.

DOMPDF juga memungkinkan kita untuk menambahkan header atau footer ke PDF dihasilkan dengan melekatkan script PHP dalam HTML. Namun untuk dapat mengunakan fungsi tersebut terlebih dahulu merubah DOMPDF_ENABLE_PHP menjadi true dengan merubah nilainya menjadi trrue kita bisa menambahkan teks, garis, gambar, persegi panjang, dll.
 
$html = <<<'ENDHTML'
<html>
 <body>
  <script type="text/php">
if (isset($pdf)) {  

    $footer = $pdf->open_object();

    // Menentukan Panjang dan lebar kertas
    $w = $pdf->get_width();
    $h = $pdf->get_height();

 // Mengatur Bentuk Font
    $font = Font_Metrics::get_font("helvetica", "normal");
    $txtHeight = Font_Metrics::get_font_height($huruf, 8);

    // Membuat garis panjang di bawah halaman
    $y = $h - 2 * $txtHeight - 24;
    $color = array(0, 0, 0);
    $pdf->line(16, $y, $w - 16, $y, $color, 1);    

    // Mengatur Nomor Halaman di kiri halaman
    $pdf->page_text(16, $y, "Page: {PAGE_NUM} of {PAGE_COUNT}", $font, 8, $color);
    // Mengatut Teks
    $kata = "Test Menggunakan DOMPFD";
    $width = Font_Metrics::get_text_width($kata, $font, 8);
    $pdf->text($w - $width - 16, $y, $kata, $font, 8);

    $pdf->close_object();

   $pdf->add_object($footer, "all");
}
  </script>
  <h1>Dompdf Saya</h1>
 </body>
</html>
ENDHTML;

atau bisa juga dengan contoh seperti dibawah ini
 
<?php
$dompdf = new DOMPDF();
$dompdf->set_paper("A4");

$dompdf->load_html($html);
$dompdf->render();
$canvas = $dompdf->get_canvas();
$font = Font_Metrics::get_font("helvetica", "bold");
$canvas->page_text(16, 800, "Page: {PAGE_NUM} of {PAGE_COUNT}", $font, 8, array(0,0,0));
$dompdf->stream("contohdompdf.pdf",array("Attachment"=>0));

Dengan catatan kode harus diletakkan setelah $ DOMPDF-> render ()

Sebuah editor PHP adalah alat yang berguna untuk membantu Anda membuat perangkat lunak yang Anda butuhkan. Ada banyak pilihan yang bisa menjadi bahan pertimbangan pembaca diantaranya adalah Eclipse PHP Editor (free), Zend Studio (berbayar), Gedit (Linux), Geany(Win/Linux) , kalau suruh milih yang mana itu tergantung pribadi dan kebiasaan kita dalam menggunakannya, karena menurut saya beberapa editor yang saya sebutkan diatas memiliki kekurangan dan kelebihan masing-masing. Untuk saat ini saya cenderung menggunakan sebuah editor yaitu Sublime Text yang saya anggap mempunyai fitur-fitur user-friendly, ringan dan tampilannya yang simpel.

Gambar Sublime Text yang saya gunakan
Jika anda ingin mencoba Sublime Text anda bisa mengunduhnya disini Ada beberapa faktor yang saya anggap penting disini dalam memilih sebuah editor PHP berikut beberapa faktor-faktor yang wajib untuk dipertimbangkan :

FITUR
Salah satu fitur yang paling penting yang harus dicari dalam software ini adalah bagaimana editor benar-benar bekerja. Anda ingin memastikan Anda mendapatkan sebuah aplikasi yang membuat melihat ratusan, jika tidak ribuan, baris kode yang mudah. Anda juga akan ingin melihat apakah mereka termasuk debugger, unit tester dan kode generator. Semua fitur ini akan membuat merancang situs sederhana yang sempurna, dan sampai menjaga nyaris tanpa usaha.

KEMUDAHAN PENGGUNAAN
Tidak semua orang tahu coding bahasa serta programmer menguasai, jadi editor PHP harus fleksibel dan cukup mudah untuk digunakan, bahkan mereka yang hanya memiliki dasar-dasar dapat dengan cepat menjadi produktif. Ini termasuk bagaimana mudahnya untuk menginstal, kemampuan untuk mengubah tata letak ruang kerja, zoom pada area untuk melihat lebih mudah dan menemukan jalan sekitar Anda aplikasi.

BANTUAN DAN DUKUNGAN
Ketika datang ke sesuatu seperti coding, bantuan dan dukungan yang komprehensif sangat penting. Kami mengevaluasi opsi untuk dukungan teknis dan bantuan manual aplikasi, serta tutorial untuk membantu jika Anda terjebak. Pembangunan Web adalah komunitas besar dan membantu, jadi kami juga mengevaluasi apa dukungan online yang ditawarkan.



Framework secara sederhana dapat diartikan kumpulan dari fungsi-fungsi/prosedur-prosedur dan class-class untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih mempermudah dan mempercepat pekerjaan seorang programer, tanpa harus membuat fungsi atau class dari awal. ada banyak framework yang bisa menjadi pilihan diantaranya

1. Yii


 2. Codeigniter

 3. Zend Framwork
 4. Laravel


Ada beberapa alasan mengapa menggunakan Framework:

  1. Mempercepat dan mempermudah pembangunan sebuah aplikasi web.
  2. Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)
  3. Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita tidak perlu membangun dari awal (misalnya validasi, ORM, pagination, multiple database, scaffolding, pengaturan session, error handling, dll
  4. Lebih bebas dalam pengembangan jika dibandingkan CMS

Selanjutnya

Komentar Terbaru