<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A04AQ3o_cCp7ImA9WhRaFEk.&quot;"><id>tag:blogger.com,1999:blog-3286517643323335712</id><updated>2012-02-17T10:39:02.448+07:00</updated><title>Coding Notes</title><subtitle type="html">Catatan-catatan menarik yg muncul saat melakukan pemrograman</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.syamsul.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.syamsul.org/" /><author><name>M. Syamsul Arifin</name><uri>http://www.blogger.com/profile/11607411941509642025</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/syamsul" /><feedburner:info uri="syamsul" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEcGQXw9fyp7ImA9WxZXF0U.&quot;"><id>tag:blogger.com,1999:blog-3286517643323335712.post-9007161992788685940</id><published>2008-03-06T12:13:00.003+07:00</published><updated>2008-03-06T12:40:20.267+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-06T12:40:20.267+07:00</app:edited><title>Buat File PDF on the Fly dengan Bahasa Arab</title><content type="html">&lt;div style="text-align: justify;"&gt;    Sebelumnya saya sudah pernah membuat file PDF on the fly dengan memakai bahasa Mandarin. Saat itu kesulitannya mencari file-file class PHP yg bisa merender font-font bahasa mandarin ke format PDF. Pada akhirnya saya menemukan FPDF dengan dukungan file class chinese.php.&lt;br /&gt;   Sekarang saya mendapat proyek yang antara lain membuat file PDF - on the fly juga, ke format bahasa Arab. Saya pikir mudah untuk membuatnya, mengingat saya agak paham - dikit-dikit - tentang penulisan bahasa Arab. Apalagi komputer saya memakai Windows XP yg dengan mudah di-install untuk mendukung pemakaian bahasa Arab.&lt;br /&gt;   Ternyata dugaan saya salah! Saya sudah install file-file pendukung untuk bahasa Arab, lalu saya install juga Adobe Reader khusus format ME (Middle East), kemudian saya pasang juga software untuk pengetikan bahasa Arab. Eh, ternyata saat saya aplikasikan di script PHP, output filenya selalu berbentuk "???????", meski saya sudah coba pakai PHPDesigner yg juga mendukung penulisan bahasa Arab.&lt;br /&gt;   Saya sudah coba file class TCPDF yg memang mendukung penulisan huruf dari kanan ke kiri (RTL) semacam bahasa Arab dan Hebrew. Tetapi saat saya coba menggunakan font-font Arabic,  outputnya ternyata terpotong-potong - dalam arti hasil keluarannya berupa font-font arab yg masih utuh, tidak tersambung sesuai kaidah bahasa Arab - meskipun saat penulisannya sudah tersambung dengan sempurna.&lt;br /&gt;   Setengah mati saya coba cari-cari di internet, file-file class untuk pengerjaan proyek tersebut, sampai akhirnya saya menemukan file class &lt;span style="font-weight: bold;"&gt;ar-glyph.php&lt;/span&gt; buatan Khaled Al Samaa di &lt;a href="http://www.ar-php.com/php/arabic/index.html"&gt;www.ar-php.com/php/arabic&lt;/a&gt;&lt;br /&gt;   File class ini merupakan turunan dari class UFPDF, yg berbeda dengan class TCPDF diatas. UFPDF sendiri merupakan turunan class FPDF yg saya pakai untuk membuat file PDF on the fly menggunakan bahasa Mandarin.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;    Hasilnya? wow keren.... karena justru dengan file class ini saya sudah tidak perlu lagi meng-install file-file pendukung bahasa Arab untuk Windows XP saya, tidak juga harus meng-install Adobe Reader versi ME (Arabic), atau bahkan tanpa harus meng-install software untuk pengetikan bahasa Arab. Cukup salin file-file tadi (termasuk file font Arab yg ada di folder hasil download) ke direktori root server Anda, dan Anda buat modifikasi dari file contoh yg disertakan di file &lt;span style="font-weight: bold;"&gt;ar-glyph.php &lt;/span&gt;tadi melalui software PHPDesigner anda.&lt;br /&gt;&lt;br /&gt;   Selamat mencoba...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3286517643323335712-9007161992788685940?l=www.syamsul.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.syamsul.org/feeds/9007161992788685940/comments/default" title="Poskan Komentar" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3286517643323335712&amp;postID=9007161992788685940" title="3 Komentar" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/9007161992788685940?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/9007161992788685940?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/syamsul/~3/XPeZ-PkAtos/buat-file-pdf-on-fly-dengan-bahasa-arab.html" title="Buat File PDF on the Fly dengan Bahasa Arab" /><author><name>M. Syamsul Arifin</name><uri>http://www.blogger.com/profile/11607411941509642025</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.syamsul.org/2008/03/buat-file-pdf-on-fly-dengan-bahasa-arab.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUENQns6fCp7ImA9WBFaFEo.&quot;"><id>tag:blogger.com,1999:blog-3286517643323335712.post-7207678699455342343</id><published>2007-05-18T13:02:00.000+07:00</published><updated>2007-05-18T14:34:53.514+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-18T14:34:53.514+07:00</app:edited><title>TEKNIK AJAX</title><content type="html">&lt;div style="text-align: justify;"&gt;Teknik AJAX sangat menarik untuk dipelajari, karena teknik ini bisa kita gunakan untuk menampilkan data hasil proses query tanpa harus merefresh page HTML yg sudah ada. Saya mulai menggunakan teknik ini saat membuat program keuangan. Disitu dibutuhkan tampilan data COA (code of account) saat kita ketikkan kodenya. Teknik AJAX merupakan kombinasi script PHP, Javascript dan XML.&lt;br /&gt;&lt;br /&gt;Pada contoh script disini, saya gunakan teknik dasar AJAX, dengan harapan bisa lebih mudah dipahami, meskipun memang banyak sekali di internet kita temukan file-file class php yg menyediakan akses teknik AJAX.&lt;br /&gt;&lt;br /&gt;Pada contoh dibawah, terdapat 2 event yg menggunakan teknik AJAX. Satu, event untuk menampilkan keterangan kode account setelah diisikan kode account (COA) nya - yg diambil langsung dari database MySQL, kedua, event untuk menampilkan titik ribuan saat dituliskan angka transaksi.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&amp;lt;TABLE width="66%"&amp;gt;&lt;br /&gt;  &amp;lt;TR&amp;gt;&lt;br /&gt;    &amp;lt;TD&amp;gt;&amp;lt;INPUT maxLength=16 size=12 type=text name="kode" onBlur="akun(this.value)"&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;    &amp;lt;TD&amp;gt;&amp;lt;INPUT maxLength=70 size=50 type=text name="note" id="note"&amp;gt; Rp.&amp;lt;INPUT maxLength=16 size=16 type=text name="nilai" id="isian" onChange="titik()" align=right&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;&amp;lt;/TABLE&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Input pertama pada kode HTML diatas terdapat event onBlur yg membangkitkan fungsi akun(nilai) yg digunakan untuk menampilkan keterangan kode account. Input kedua terdapat event onChange yg membangkitkan fungsi titik() yg digunakan untuk menampilkan titik ribuan pada angka.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;var url1 = "search1.php?q=";&lt;br /&gt;function akun(x) {&lt;br /&gt;if (!done &amp;&amp;amp;amp;amp;amp; http) {&lt;br /&gt;var term = x;&lt;br /&gt;http.open('GET', url1 + term, true);&lt;br /&gt;http.onreadystatechange = handleHttpResponse1&lt;br /&gt;http.send(null);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var url2 = "search2.php?q=";&lt;br /&gt;function titik() {&lt;br /&gt;if (!done &amp;&amp;amp; http) {&lt;br /&gt;var term = document.getElementById('isian').value;&lt;br /&gt;http.open('GET', url2 + term, true);&lt;br /&gt;http.onreadystatechange = handleHttpResponse2&lt;br /&gt;http.send(null);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;pada kedua fungsi diatas, nilai dari setiap input event yg membangkitkannya, dikirimkan melalui http.open() ke url yg sesuai. Untuk fungsi akun() ke search1.php dan fungsi titik() ke search2.php, dimana pada kedua file tsb, diproses lagi yg hasilnya dikirimkan balik dengan format xML melalui fungsi handleHttpResponse milik getHTTPObject().&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;//isi file search1.php&lt;br /&gt;&amp;lt;?php&lt;br /&gt;if (isset($_GET['q']) === FALSE)&lt;br /&gt;{&lt;br /&gt;    exit();&lt;br /&gt;}&lt;br /&gt;include('../incl/koneksi.php');&lt;br /&gt;//list($isi,$urut)=split("-",$q);&lt;br /&gt;$isi = $q;&lt;br /&gt;$query = "select nama from akun where kode='".$isi."' and jenak=0";&lt;br /&gt;&lt;br /&gt;$rResult = mysql_query($query);&lt;br /&gt;if ($rResult === FALSE) {&lt;br /&gt;    print 'ada kesalahan!';&lt;br /&gt;}&lt;br /&gt;$aTmp  = array();&lt;br /&gt;&lt;br /&gt;if (mysql_num_rows($rResult) == 0) {&lt;br /&gt;    echo "KODE SALAH ATAU KODE TIDAK ADA !!!";&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;    while ($aTmp = mysql_fetch_assoc($rResult)) {&lt;br /&gt;    $nobuk = $aTmp['nama'];&lt;br /&gt;       echo $nobuk;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;// isi file search2.php&lt;br /&gt;&amp;lt;?php&lt;br /&gt;if (isset($q) === FALSE)&lt;br /&gt;{&lt;br /&gt;    exit();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;echo number_format($q,2,',','.');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Dan akhirnya hasil dari proses ke 2 file tadi diterima fungsi handleHttpRespons() yg sesuai,&lt;br /&gt;&lt;br /&gt;function handleHttpResponse1() {&lt;br /&gt;if (http.readyState == 4 &amp;&amp;amp; http.status == 200) {&lt;br /&gt;document.getElementById('note').value = http.responseText;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;function handleHttpResponse2() {&lt;br /&gt;if (http.readyState == 4 &amp;&amp;amp; http.status == 200) {&lt;br /&gt;document.getElementById('isian').value = http.responseText;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;anda bisa lihat, hasilnya dimasukkan melalui element input form dengan id yg sesuai, id 'note' untuk hasil fungsi akun() dan id 'isian' untuk hasil fungsi titik().&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;script lengkap untuk file ajax.php adalah sbb :&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;include ('../incl/koneksi.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Tambah Data&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;br /&gt;  var done = false;&lt;br /&gt;  // fungsi akun : menampilkan keterangan account&lt;br /&gt;  var url1 = "search1.php?q=";&lt;br /&gt;  function akun(x) {&lt;br /&gt;     if (!done &amp;&amp;amp; http) {&lt;br /&gt;    var term = x;&lt;br /&gt;    http.open('GET', url1 + term, true);&lt;br /&gt;    http.onreadystatechange = handleHttpResponse1&lt;br /&gt;    http.send(null);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  function handleHttpResponse1() {&lt;br /&gt;      if (http.readyState == 4 &amp;&amp;amp; http.status == 200) {&lt;br /&gt;      document.getElementById('note').value = http.responseText;&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;  // fungsi titik : menampilkan titik untuk ribuan&lt;br /&gt;  var url2 = "search2.php?q=";&lt;br /&gt;  function titik() {&lt;br /&gt;     if (!done &amp;&amp;amp; http) {&lt;br /&gt;    var term = document.getElementById('isian').value;&lt;br /&gt;    http.open('GET', url2 + term, true);&lt;br /&gt;    http.onreadystatechange = handleHttpResponse2&lt;br /&gt;    http.send(null);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  function handleHttpResponse2() {&lt;br /&gt;      if (http.readyState == 4 &amp;&amp;amp; http.status == 200) {&lt;br /&gt;      document.getElementById('isian').value = http.responseText;&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;  // fungsi utama ajax&lt;br /&gt;  function getHTTPObject() {&lt;br /&gt;  var xmlhttp;&lt;br /&gt;  if (!xmlhttp &amp;&amp;amp; typeof XMLHttpRequest != 'undefined') {&lt;br /&gt;     try { xmlhttp = new XMLHttpRequest();&lt;br /&gt;         }&lt;br /&gt;     catch (e) {&lt;br /&gt;         xmlhttp = false;&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;   return xmlhttp;&lt;br /&gt;   }&lt;br /&gt;   var http = getHTTPObject();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;center&amp;gt;&lt;br /&gt;&amp;lt;TABLE width="66%"&amp;gt;&lt;br /&gt;  &amp;lt;TR&amp;gt;&lt;br /&gt;    &amp;lt;TD&amp;gt;&amp;lt;INPUT maxLength=16 size=12 type=text name="kode" onBlur="akun(this.value)"&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;    &amp;lt;TD&amp;gt;&amp;lt;INPUT maxLength=70 size=50 type=text name="note" id="note"&amp;gt; Rp.&amp;lt;INPUT maxLength=16 size=16 type=text name="nilai" id="isian" onChange="titik()" align=right&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;&amp;lt;/TABLE&amp;gt;&amp;lt;/P&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3286517643323335712-7207678699455342343?l=www.syamsul.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.syamsul.org/feeds/7207678699455342343/comments/default" title="Poskan Komentar" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3286517643323335712&amp;postID=7207678699455342343" title="2 Komentar" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/7207678699455342343?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/7207678699455342343?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/syamsul/~3/2F07yN7hFCE/teknik-ajax.html" title="TEKNIK AJAX" /><author><name>M. Syamsul Arifin</name><uri>http://www.blogger.com/profile/11607411941509642025</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.syamsul.org/2007/05/teknik-ajax.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8CQX48fyp7ImA9WBFaFEo.&quot;"><id>tag:blogger.com,1999:blog-3286517643323335712.post-8426605518597702749</id><published>2007-05-18T12:47:00.000+07:00</published><updated>2007-05-18T14:37:40.077+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-18T14:37:40.077+07:00</app:edited><title>MEMBUAT FILE PDF DENGAN FONT MANDARIN</title><content type="html">&lt;div style="text-align: justify;"&gt;catatan ini saya buat saat membuat program berbasis web yg membutuhkan laporan-laporan berformat PDF. Kita tahu bahwa format PDF sudah merupakan standar file untuk pengiriman file berbasis jaringan dan internet yg multi-language dan multi-OS. Dengan format PDF, kita tidak perlu khawatir terhadap perubahan tampilan dan style isi file saat kita kirimkan via internet.&lt;br /&gt;Saya menggunakan file class FPDF untuk menghasilkan file berformat PDF ini, karena file class ini kecil tetapi mampu menghasilkan file PDF dengan font chinese (simplified dan traditional). Sebelumnya saya menggunakan library built-in PHP yakni pDFlib, yg selalu disertakan dalam setiap bundel instalasi PHP. Kekurangan memakai file library ini, selain tidak mampu menghasilkan format font chinese juga kita harus mengubah setting program saat kita jalankan dari Windows ke Linux atau sebaliknya.&lt;br /&gt;Dalam catatan ini kita akan buat file untuk cetak form Biodata CTKI (disederhanakan) yg berformat PDF, dimana didalamnya kita tampilkan data-data CTKI menggunakan font chinese dan photo CTKI. Kita perlu mengambil file class fpdf.php dan file chinese.php di www.fpdf.org (atau bisa anda download di www.syamsul.org/download/pdf). Letakkan file class fpdf tsb di direktori root. Dan anda bisa mulai mencoba script dibawah ini.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;require('chinese.php');&lt;br /&gt;$pdf=new PDF_chinese();&lt;br /&gt;&lt;br /&gt;// buat font chinese&lt;br /&gt;// GB untuk font chinese simplified&lt;br /&gt;// Big5 untuk font chinese traditional&lt;br /&gt;AddGBFont();&lt;br /&gt;$pdf-&gt;Open();&lt;br /&gt;$pdf-&gt;AddPage();&lt;br /&gt;&lt;br /&gt;// cetak logo utama&lt;br /&gt;$pdf-&gt;image('img/logo.jpg',11,2,180,30);&lt;br /&gt;$pdf-&gt;SetFont('GB','B',12);&lt;br /&gt;&lt;br /&gt;// buat garis&lt;br /&gt;$pdf-&gt;setLineWidth(0.8);&lt;br /&gt;$pdf-&gt;line(10,46,200,46);&lt;br /&gt;&lt;br /&gt;// mulai membuat kalimat dengan font chinese&lt;br /&gt;// anda harus menggunakan editor teks yg mendukung tampilan font chinese&lt;br /&gt;// misalnya PHP Designer.&lt;br /&gt;$pdf-&gt;text(10,52,'ÉêÇëÈÏµÄÀúÊÊé¡');&lt;br /&gt;$pdf-&gt;setLineWidth(0.7);&lt;br /&gt;$pdf-&gt;line(10,54,40,54);&lt;br /&gt;$pdf-&gt;text(140,60,'³ÉÔ±ÊýÄ¿');&lt;br /&gt;$pdf-&gt;text(10,60,'ÐÕÃû');    &lt;br /&gt;$pdf-&gt;text(10,65,'³öÉúµØ');  &lt;br /&gt;$pdf-&gt;text(10,70,'ÄêÁä');    &lt;br /&gt;$pdf-&gt;text(10,75,'³öÉúÆÚ');  &lt;br /&gt;$pdf-&gt;text(10,80,'Éí¸ß/ÌåÖØ');&lt;br /&gt;$pdf-&gt;text(10,85,'ÌåÖØ');    &lt;br /&gt;$pdf-&gt;text(10,90,'¹«½ï');    &lt;br /&gt;$pdf-&gt;text(10,95,'½ÌÓý');    &lt;br /&gt;$pdf-&gt;text(10,100,'×Ú½Ì');   &lt;br /&gt;$pdf-&gt;text(10,105,'»éÒöµÄ'); &lt;br /&gt;&lt;br /&gt;// tampilkan photo CTKI&lt;br /&gt;$photo=$_SERVER['DOCUMENT_ROOT']."/photo/siti.jpg";&lt;br /&gt;$pdf-&gt;image($photo,90,80,110,145);&lt;br /&gt;// tampilkan&lt;br /&gt;$pdf-&gt;Output();&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3286517643323335712-8426605518597702749?l=www.syamsul.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.syamsul.org/feeds/8426605518597702749/comments/default" title="Poskan Komentar" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3286517643323335712&amp;postID=8426605518597702749" title="4 Komentar" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/8426605518597702749?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/8426605518597702749?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/syamsul/~3/L0SxyCYXcrQ/membuat-file-pdf-dengan-font-mandarin.html" title="MEMBUAT FILE PDF DENGAN FONT MANDARIN" /><author><name>M. Syamsul Arifin</name><uri>http://www.blogger.com/profile/11607411941509642025</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.syamsul.org/2007/05/membuat-file-pdf-dengan-font-mandarin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4NSH07eCp7ImA9WBFaFEo.&quot;"><id>tag:blogger.com,1999:blog-3286517643323335712.post-5210670183272481976</id><published>2007-05-18T12:44:00.000+07:00</published><updated>2007-05-18T14:39:59.300+07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-18T14:39:59.300+07:00</app:edited><title>MEMBUAT LAPORAN BERFORMAT EXCEL</title><content type="html">&lt;div style="text-align: justify;"&gt;Untuk Aplikasi berbasis web, seringkali kita kesulitan untuk mendapatkan format laporan yg mantap. meskipun kita bisa membuatnya dalam format HTML atau PDF. Kekurangan format HTML adalah tampilan mudah berubah dengan berubahnya browser yg kita pakai. Sedangkan untuk membuat format PDF, cukup merepotkan untuk menampilkan data dalam format tabel, apalagi kalau data yg akana ditampilkan cukup panjang.&lt;br /&gt;Untuk itu kita perlu mencari format laporan yg 'enak' untuk dilihat tetapi mudah dibuat, yakni format Excel. Script yg saya jadikan contoh ini berupa laporan AN-05 (Laporan pemberangkatan CTKI standar). File-file class untuk menghasilkan file format excel ini bisa anda download di www.syamsul.org/download/excel.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;require_once ('../incl/class.writeexcel_workbook.inc.php');&lt;br /&gt;require_once ('../incl/class.writeexcel_worksheet.inc.php');&lt;br /&gt;&lt;br /&gt;// akses ke file koneksi database&lt;br /&gt;// database bisa apa saja  : MySQL,PosgreSQL,ODBC,dsb&lt;br /&gt;include ('../incl/koneksi.php');&lt;br /&gt;&lt;br /&gt;// buat file temporary&lt;br /&gt;$fname = tempnam("/tmp", "simple.xls");&lt;br /&gt;&lt;br /&gt;// buat workbook baru&lt;br /&gt;$workbook = &amp;new writeexcel_workbook($fname);&lt;br /&gt;// buat format tampilan header&lt;br /&gt;$header =&amp; $workbook-&gt;addformat(array(&lt;br /&gt;                                          bold    =&gt; 1,&lt;br /&gt;                                          italic  =&gt; 0,&lt;br /&gt;                                          color   =&gt; 'black',&lt;br /&gt;                                          size    =&gt; 8,&lt;br /&gt;                                          font    =&gt; 'Arial',&lt;br /&gt;                                      ));&lt;br /&gt;$header-&gt;set_align('center');&lt;br /&gt;// buat format 1 tampilan teks&lt;br /&gt;$teks1 =&amp; $workbook-&gt;addformat(array(&lt;br /&gt;                                          bold    =&gt; 0,&lt;br /&gt;                                          italic  =&gt; 0,&lt;br /&gt;                                          color   =&gt; 'black',&lt;br /&gt;                                          size    =&gt; 8,&lt;br /&gt;                                          font    =&gt; 'Arial',&lt;br /&gt;                                      ));&lt;br /&gt;$teks1-&gt;set_align('left');&lt;br /&gt;// buat format 2 tampilan teks&lt;br /&gt;$teks2 =&amp; $workbook-&gt;addformat(array(&lt;br /&gt;                                          bold    =&gt; 0,&lt;br /&gt;                                          italic  =&gt; 1,&lt;br /&gt;                                          color   =&gt; 'black',&lt;br /&gt;                                          size    =&gt; 8,&lt;br /&gt;                                          font    =&gt; 'Arial',&lt;br /&gt;                                      ));&lt;br /&gt;$teks2-&gt;set_align('center');&lt;br /&gt;// buat worksheet baru&lt;br /&gt;$worksheet = &amp;$workbook-&gt;addworksheet(' lembar-1 ');&lt;br /&gt;&lt;br /&gt;// mulai menuliskan data&lt;br /&gt;// sintaks : write(baris-n, kolom-n, ukuran).&lt;br /&gt;// baris dan kolom dimulai dgn indeks 0&lt;br /&gt;&lt;br /&gt;// buat header worksheet&lt;br /&gt;$worksheet-&gt;write(0, 1, "LAPORAN PEMBERANGKATAN TKI DI LUAR NEGERI ", $header);&lt;br /&gt;$worksheet-&gt;merge_cells(0,1,0,3);&lt;br /&gt;&lt;br /&gt;// buat header kolom&lt;br /&gt;$worksheet-&gt;set_column(0,0,3);&lt;br /&gt;$worksheet-&gt;write(1, 0,  "No.", $header);&lt;br /&gt;$worksheet-&gt;set_column(1,1,22);&lt;br /&gt;$worksheet-&gt;write(1, 1,  "Nama TKI &amp;", $header);&lt;br /&gt;$worksheet-&gt;write(2, 1,  "Temp/Tgl Lahir", $header);&lt;br /&gt;$worksheet-&gt;set_column(2,2,7);&lt;br /&gt;$worksheet-&gt;write(1, 2,  "Jenis", $header);&lt;br /&gt;$worksheet-&gt;write(2, 2,  "Kelamin", $header);&lt;br /&gt;$worksheet-&gt;set_column(3,3,30);&lt;br /&gt;$worksheet-&gt;write(1, 3,  "Alamat Keluarga di", $header);&lt;br /&gt;$worksheet-&gt;write(2, 3,  "Indonesia / Kandepnaker", $header);&lt;br /&gt;$worksheet-&gt;set_column(4,4,10);&lt;br /&gt;&lt;br /&gt;# query record data CTKI&lt;br /&gt;$n = 2; $m=1;&lt;br /&gt;$query = "select refno,nama,tmplahir,tgllahir,alamat from biodata where statustki='berangkat' order by refno";&lt;br /&gt;$recordSet = &amp;$db-&gt;Execute($query);&lt;br /&gt;while(!$recordSet-&gt;EOF){&lt;br /&gt;// pecahkan panjang alamat tki&lt;br /&gt;$alm1 = substr($recordSet-&gt;fields["alamat"],0,30);&lt;br /&gt;$alm2 = substr($recordSet-&gt;fields["alamat"],30,strlen($recordSet-&gt;fields["alamat"]));&lt;br /&gt;&lt;br /&gt;// mulai menampilkan data&lt;br /&gt;$worksheet-&gt;write($n+1,0,$m,$teks1);&lt;br /&gt;$worksheet-&gt;write($n+1,1,$recordSet-&gt;fields["nama"],$teks1);&lt;br /&gt;$worksheet-&gt;write($n+2,1,$recordSet-&gt;fields["tmplahir"]." / ".$recordSet-&gt;fields["tgllahir"],$teks1);&lt;br /&gt;$worksheet-&gt;write($n+1,2,'WANITA',$teks2);&lt;br /&gt;$worksheet-&gt;write($n+1,3,$alm1,$teks2);&lt;br /&gt;$worksheet-&gt;write($n+2,3,$alm2,$teks2);&lt;br /&gt;$recordSet-&gt;MoveNext();&lt;br /&gt;$n=$n+3; $m=$m+1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// tutup workbook&lt;br /&gt;$workbook-&gt;close();&lt;br /&gt;&lt;br /&gt;// tampilkan dalam format excel&lt;br /&gt;header("Content-Type: application/x-msexcel; name=\"cetak_an05.xls\"");&lt;br /&gt;header("Content-Disposition: inline; filename=\"cetak_an05.xls\"");&lt;br /&gt;&lt;br /&gt;// buka dan tampilkan hasilnya&lt;br /&gt;$fh=fopen($fname, "rb");&lt;br /&gt;fpassthru($fh);&lt;br /&gt;&lt;br /&gt;// hapus file sementara&lt;br /&gt;unlink($fname);&lt;br /&gt;&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3286517643323335712-5210670183272481976?l=www.syamsul.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.syamsul.org/feeds/5210670183272481976/comments/default" title="Poskan Komentar" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3286517643323335712&amp;postID=5210670183272481976" title="1 Komentar" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/5210670183272481976?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3286517643323335712/posts/default/5210670183272481976?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/syamsul/~3/H2ePxehcoEw/membuat-laporan-berformat-excel.html" title="MEMBUAT LAPORAN BERFORMAT EXCEL" /><author><name>M. Syamsul Arifin</name><uri>http://www.blogger.com/profile/11607411941509642025</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.syamsul.org/2007/05/membuat-laporan-berformat-excel.html</feedburner:origLink></entry></feed>

