PHPJavaBridge- PHP PDF Generator
Salah satu bagian terpenting dari sebuah sistem adalah laporan. Laporan bisa dibuat dalam berbagai macam format dokumen. PDF (Portable Document Format) adalah salah satu format dokumen yang banyak digunakan.
Bagaimana dengan Aplikasi berbasis web ? Untuk aplikasi berbasis web, PDF juga sering digunakan untuk membuat laporan. Ada banyak sekali class PHP untuk menggenerate dokumen PDF. Ada TCPDF, FPD, dll. Saya sendiri pernah mencoba menggunakan class tersebut. Memang bagus cuman saya mengalami kesulitan ketika membuat laporan yang cukup rumit. Bukannya kelas2 tadi gk bisa, cuman ribet ajah..
Akhirnya saya menemukan cara yang lebih ‘manusiawi’ untuk membuat dokumen PDF. yaitu menggunakan PHP-Java-bridge
Cara kerjanya kira – kira begini. Kita membuat sebuah dokumen dengan format JRXML kemudian java akan memproses dokument tersebut menjadi dokumen PDF. Trus hubungannya dengan PHP apa ? PHP kita gunakan untuk menjalankan kelas java yang bertugas menggenerate JRXML menjadi PDF tadi.
Installasi
Untuk installasi, sangat sederhana sekali. karena menjalankan class java, kita harus menginstlal Java2RuntimeEnvironment (bisa di download di sini ). Kemudian download iReport. iReport adalah tool untuk menggenerate dokumen JRXML. Extract file tadi, kemudian copy semua isi direktori iRreport3.1xx\lib ke dalam direktori library java. Klo anda pengguna windows, ada di direktori C:\Program Files\Java\jre1.6.xxx\lib\ext
Membuat Dokumen JRXML dengan iReport
Jalankan program iReport.exe di direktori iReport yang telah di extract tadi. Buat dulu koneksi ke database. Database yang saya gunakan adalah MySQL. dari menu Data => Connections/DataSources Kemudian buat koneksi baru dengan mengklik tombol NEW . Pada bagian Select The Datasource Type, pilih Database JDBC Connection
Isikan Name dengan nama ds sesuka kita. JDBC Url tidak perlu diisikan. Isikan saja pada bagian Server Address = localhost dan Database = namadatabase. Kemudian klik tombok Wizard. JDBC URL akan otomatis diisikan berdasarkan Server Address dan Database. Kemudian Klik Save
Untuk mebuat dokumen baru, klikdari menu File -> Report Wizard. Isikan SQL Query dengan query data yang ingin ditampilkan. Atau tombol Klik Design Query untuk membuat query customize. Kemudian Klik Next , pilih jenis Tampilan dokumen. Columntar atau Tabular. Supaya datanya ditampilkan dalam bentuk tabel, pilih Tabularl. Kemudian ikuti terus wizard, sampe selesia.
Simpan dokumen di direktori Document_root apache.Untuk melihat hasil sementar dokumen, Build -> Execute (With active connection).
Generate Dokumen PDF dari PHP
Download PHP-Java-Bridge kemudian extract file tersebut. Ambil 2 buah File yaitu JavaBridge.jar di direktori php-java-bridge_5.2.2.4_j2ee\JAVA.STANDALONE dan java.inc yang ada di direktori php-java-bridge_5.2.2.4_j2ee\JAVA.STANDALONE\java kemudian copykan ke Document_root PHP.Untuk keamanan, sebaiknya java.inc di rename menjadi java.inc.php.
Supaya java bisa melakukan koneksi ke database MySQL downloa package koneksi java mysql di sini. nama packagenya saya gunakan nama saya. kalo anda tidak suka, silahkan compile ulang sendiri, sourcenya ada di dalam file tadi.
Kemudian buat file php dengan source sbb :
<?php
require_once "Java.inc.php";
$host="localhost";
$dbname="sislitbang";
$user="root";
$password="";
$Conn = new Java("firman.JdbcConnection"); // calls the altic file
$Conn->setDriver("com.mysql.jdbc.Driver");
$Conn->setConnectString("jdbc:mysql://$host/$dbname");
$Conn->setUser($user);
$Conn->setPassword($password);
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport(realpath("pegawai.jrxml"));
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
//$params->put("test","Firmansyah");
//$params->put("id_unit","1");
$jasperPrint = $fillManager->fillReport($report, $params, $Conn->getConnection());
$exportManager = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
$outfile="pegawai.pdf";
//$outputPath = realpath(".")."/"."pegawai.pdf";
$outputPath = $outfile;
$exportManager->exportReportToPdfFile($jasperPrint, $outputPath);
header("location:$outfile");
?>
Jalankan (doubleklik) JavaBridge.jar dari dokumen root. Kemudian klik ok. Untuk memastikan JavaBridge sudah bekerja, buka browser di URL http://localhost:8080
Coba di preview file php tadi di webbrowser.. selamat mencoba

Rius said,
Wrote on May 4, 2010 @ 6:37 am
halo mas,
firman.jar nya di simpan di folder mana mas?
thanks
Firman said,
Wrote on May 9, 2010 @ 10:24 am
di dalam direktori library JRE. biasanya di C:\Program Files\Java\jre6\lib\ext dan di librarynya JDK. biasanya di C:\Program Files\Java\jre1.6.0_07\lib\ext
David said,
Wrote on June 27, 2010 @ 5:35 am
Mas mau tanya… Pke apache tomcat ya.. Klo install php sma tomcatnya gmana..!
David said,
Wrote on June 27, 2010 @ 7:18 am
Trnyata addins sma php bridge ya…php nya.. Klo setting mysql di php bawaan phpbridge nya gmana…
Firman said,
Wrote on August 21, 2010 @ 7:31 pm
untuk pdf generator, menggunakan webserver sendiri dengan port 8080. apa itu pakek tomcat ato apa, saya kurang begitu jelas