SlideShare a Scribd company logo
TUTORIAL                                        Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
AntiWord




Memproses Dokumen
Microsoft Word di Web
Bagi Anda yang terbiasa bekerja dengan OpenOffice. Ada kalanya, ketika bepergian dan
membawa dokumen OpenOffice dan Anda harus melihat isinya sementara tidak ada Open-
Office yang terinstal di komputer yang Anda gunakan (ketika di warnet misalnya), apa
yang harus dilakukan? Pasti akan lebih mudah apabila Anda memanfaatkan program un-
tuk meng-convert dokumen word tersebut ke format yang bisa dibaca di komputer yang
sedang digunakan. Di artikel ini, kita akan membahas pembuatan program tersebut.


M
            asalah lupa meng-convert doku-          Artikel ini ditulis di distro SUSE Pro 9.1,   dan menampilkannya ke standard output
            men ke format yang lebih umum       PHP 4.3.4, Antiword 0.35 dan Ghostscript          (layar). Contoh:
            cukup sering penulis alami. Keti-   library 7.07. Untuk distro lain, harusnya ti-     $ antiword a.doc
ka bepergian dengan satu dokumen dan ter-       dak banyak hal yang berubah apabila semua
paksa harus melihat isinya sementara kom-       program yang dibutuhkan telah terinstal.             Untuk meng-convert ke format XML,
puter yang sedang digunakan tidak terinstal                                                       Anda bisa memberikan opsi -x diikuti oleh
                                                Mengenal Antiword
OpenOffice misalnya, merupakan masalah                                                             nama DTD. Antiword yang penulis gunakan
yang cukup mengganggu. Kita sebenarnya          Sebelum kita melangkah ke aplikasi, ada           hanya bisa menggunakan DTD berupa db(
bisa saja mengextract dokumen SXW meng-         baiknya apabila kita mengenal program an-         docbook). Berikut ini adalah contoh kon-
gunakan WinZip, lantas membaca file XML          tiword terlebih dahulu. Program Antiword          versi dokumen MS Word ke format XML:
yang terkandung di dalamnya. Bisa saja. Ta-     adalah program yang ditujukan untuk me-           $ antiword -x db a.doc
pi, bagaimana kalau tidak ada WinZip juga?      nampilkan isi dari dokumen MS Word. Pa-
Seperti yang telah dikatakan, akan lebih mu-    da awalnya, format yang digunakan untuk               Untuk meng-convert ke format PS, Anda
dah apabila memanfaatkan converter online       output hanyalah file teks. Namun seiring           bisa memberikan opsi -p, diikuti oleh ukuran
untuk dokumen word. Anda bisa memilih           dengan perkembangannya, saat ini, pro-            kertas seperti letter atau a4. Ukuran kertas di-
untuk meng-convert ke format yang lebih         gram ini juga bisa dapat meng-convert ke          berikan dalam huruf kecil. Dalam beberapa
umum seperti TEXT atau PDF.                     format PS. Format output teks tentunya me-        hal, apabila Anda mempergunakan encoding
    Di dalam artikel kali ini, kita akan me-    miliki sejumlah keterbatasan seperti gambar       UTF-8, kombinasi Postscript dan UTF-8 ti-
manfaatkan PHP, antiword dan program            dan atribut layout lain. Dengan format PS,        daklah didukung. Oleh karena itu, kita perlu
ps2pdf untuk membangun converter online         hal-hal tersebut bisa ditangani. Bagi yang        memberikan opsi -m, untuk memberikan
dokumen Word ke beberapa format lain            XML mania, Anda juga bisa memanfaatkan            file yang berisikan character-mapping agar
seperti TEXT, PDF ataupun PS. Aplikasi          antiword untuk meng-convert ke format             file PS tetap bisa dihasilkan. File-file charac-
yang kita bangun dapat dihost di server web     XML.                                              ter mapping tersebut sudah datang bersama
untuk dapat pula menyediakan servis gratis         Program ini bisa di-download di http://        paket antiword dan umumnya terletak di
kepada pengguna internet lain.                  www.winfield.demon.nl/, walaupun, umum-            /usr/share/antiword. Anda harus menyebut-
    Tentunya, hasil konversi tidaklah sempur-   nya antiword sudah dipaketkan bersama             kan nama filenya saja dan bukan path leng-
na. Program yang kita gunakan untuk meng-       distro Anda. Cobalah untuk melihat ke             kap untuk opsi -m. Contoh berikut ini akan
convert, antiword, secara umum hanya dapat      dalam CD/DVD distribusi Anda sebelum              mengconvert a.doc format PS (ukuran kertas
mengekstrak teks dan atribut-atribut layout     men-download dan mengompilasi dari                letter) dengan menggunakan pemetaan ka-
sederhana lainnya. Gambar terkadang bisa,       source.                                           rakter UTF-8 ke ISO-8859-1:
namun tidak bisa diharapkan untuk mirip            Cara menggunakan program ini sangat-           $ antiword -pletter -m8859-1.txt
seperti dokumen word aslinya. Tapi, tentu-      lah mudah. Anda cukup memberikan argu-            a.doc > a.ps
nya tidak masalah. Dapat melihat isi saja su-   men berupa nama file dokumen MS Word,
dah sangat berguna. Anda bahkan bisa meli-      dan secara default, antiword akan meng-             Program ini akan selalu mencetak hasil
hat hidden text dokumen MS Word Anda.           convert dokumen tersebut ke format TEXT           konversi ke standard output. Apabila kita


74 INFOLINUX 07/2005                                       www.infolinux.web.id
TUTORIAL
 Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
                                                                                                           AntiWord



ingin menyimpan ke dalam file, kita harus       program antiword dan ps2pdf (apabila dibu-
meredireksi standard output ke nama file        tuhkan) untuk menghasilkan output sesuai
seperti contoh sebelumnya.                     format output yang dipilih oleh user. Output
   Catatan tambahan untuk konversi ke          tersebut kemudian dikembalikan ke browser
format PS. Antiword memiliki dua opsi          lengkap dengan mime type-nya dan browser
tambahan yaitu -i untuk image level dan -      akan menangani output tersebut sesuai pe-
L untuk mode landscape. Gunakan sesuai         ngaturan pada browser.
preferensi Anda.                                   Anda bisa saja membangun service untuk
   Baik. Antiword mampu meng-convert           publik. Masalahnya adalah, siapa yang mau
ke PS dan XML. Tapi saya ingin format          memberikan (meng-upload) dokumennya
PDF. Apa yang harus saya lakukan? Anti-        begitu saja kepada pihak yang tidak dikenal.
word memang tidak bisa mengconvert lang-           Berikut ini adalah source code docon-
sung ke format PDF, namun Antiword su-         web.php. Penjelasan setelah source code.
dah melakukan pekerjaan yang sangat baik       <?
dengan dapat mengconvert ke format TEXT        /*
dan format PS, sebab:                            doconweb v0.1
   Anda bisa meng-convert langsung for-          nop, 10052005, 10:48
   mat TEXT ke format PDF dengan me-             gpl
   manfaatkan program text2pdf yang bisa       */
   didapatkan di http://www.eprg.org/pd-
   fcorner/text2pdf/. Program ini mampu        $app_name = “doconweb”;
   meng-convert format TEXT ke PDF 1.1         $app_version = “0.1”;
   dengan sangat cepat dan cukup bersih.       $app_copy = “(c) nop 2005, GPL”;
   Dalam tulisan kali ini, kita tidak me-      $app_extra = “(use ghostscript
   manfaatkan program ini karena setelah       library (c) Peter Deutsch
   beberapa kali mencoba, penulis lebih        <ghost@aladdin.com> and
   senang untuk menggunakan cara yang          antiword (c) A.J. van Os
   akan kita bahas selanjutnya.                <antiword@winfield.demon.nl>)”;
   Anda bisa memanfaatkan output PS
   dari antiword dan menggunakan pro-          $converter_app = “/usr/bin/
   gram ps2pdf yang datang bersama paket       antiword”;
   ghostscript library. Dengan demikian,       $mapping_file = “8859-1.txt”;
   kita memberi perintah sama seperti keti-
   ka kita ingin meng-convert ke format PS.
   Setelah itu, kita melewatkan output an-     if (!$_POST)
   tiword ke program ps2pdf dan menyim-        {
   pan hasil konversi ke sebuah file PDF.         echo “
                                                 <html>
  Sebagai contoh untuk konversi ke PDF           <head>
memanfaatkan ps2pdf:                             <title></title>
$ antiword -m8859-1.txt -pletter                 </head>
a.doc | ps2pdf - > a.pdf                         <body>
                                                 <h3>$app_name $app_version</
   Demikianlah pengenalan menggunakan            h3> $app_extra
program antiword. Berikut ini, kita akan         <hr noshade>
melihat bagaimana memanfaatkan pro-              “;
gram-program tersebut untuk menghasil-
kan konverter online dokumen MS Word.             echo “
                                                             <form action=’{$_
Doconweb                                       SERVER[‘PHP_SELF’]}’ method=
Secara umum, aplikasi yang akan kita bangun    ’post’ enctype=’multipart/form-
sangatlah sederhana. Apa yang kita butuhkan    data’>
adalah file yang di-upload oleh user. Setelah     <table border=1>
file diterima, kita hanya perlu memanggil                       <tr><td>Word



                                                                                                                  75
                                                           www.infolinux.web.id               INFOLINUX 07/2005
TUTORIAL                             Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
AntiWord



document</td><td><input type=
’file’ name=’worddoc’></
td></tr>
  <tr><td>Output format</td><td>
            <select name=’output’>
            <option value=’PDF’>
            PDF</option>
            <option value=’PS’>
            PS</option>
            <option value=’TEXT’>    Aplikasi doconweb.
            TEXT</option>
                                                                                   program yang kita gunakan, yaitu anti-
            </select>                 [‘tmp_name’]} | ps2pdf - >
                                                                                   word. Di komputer penulis, antiword
  </td></tr>                          {$_FILES[‘worddoc’][‘tmp_
                                                                                   berada di /usr/bin. Sementara, variabel
  <tr><td>Paper size (PDF & PS        name’]}.pdf && cat {$_FILES
                                                                                   $mapping_file berisikan nama file yang
  only)</td><td>                      [‘worddoc’][‘tmp_name’]}.pdf”;
                                                                                   digunakan untuk pemetaan karakter.
            <select name=’paper’>              $header_type =
                                                                                   Karena antiword mengharuskan nama
            <option value=            “Content-type: application/pdf”;
                                                                                   file dan bukan path lengkap, maka kita
            ’letter’>Letter</                  break;
                                                                                   harus menyebutkan nama filenya saja,
            option>                         case “PS”:
                                                                                   yang tersimpan di direktori /usr/share/
            <option value=’a4’>                $output_arg = “ -m
                                                                                   antiword/. Pemetaan karakter digunakan
            A4</option>                        $mapping_file -p
                                                                                   untuk output ke PS dan PDF.
            </select>                          {$_POST[‘paper’]} {$_
                                                                                   Setelah itu, kita memeriksa variabel $_
         </td></tr>                            FILES[‘worddoc’][‘tmp_
                                                                                   POST. Apabila belum diset, maka form
  <tr><td>&nbsp;</td><td><input                name’]}”;
                                                                                   harus ditampilkan. Di form ini, kita me-
  type=’submit’ value=’view’></                $header_type =
                                                                                   nyediakan fasilitas upload kepada user,
  td></tr>                                     “Content-type:
                                                                                   beserta parameter lain untuk konversi
  </table>                                     application/postscript”;
                                                                                   seperti tipe output dan ukuran kertas.
  </form>                                      break;
                                                                                   Tipe enkode form adalah multipart/
  “;                                        case “TEXT”:
                                                                                   form-data yang dapat digunakan untuk
                                               $output_arg = “ {$_
                                                                                   fasilitas upload.
  echo “                                       FILES[‘worddoc’][‘tmp_
                                                                                   Apabila pada pemeriksaan form sebelum-
  </body>                                      name’]}”;
                                                                                   nya variabel $_POST telah diset, maka ber-
  </html>                                      $header_type =
                                                                                   arti user telah men-submit form tersebut.
  “;                                           “Content-type: text/
                                                                                   Kita pun memeriksa apakah terjadi error
}                                              plain”;
                                                                                   pada saat meng-upload. Error bisa terjadi
else                                           break;
                                                                                   karena beberapa hal. Salah satunya adalah
{                                         }
                                                                                   karena user tidak menyebutkan nama file-
  if ($_FILES[‘worddoc’][‘error’
                                                                                   nya. Atau, terjadi kegagalan transmisi. In-
  ] != 0)                                     header($header_type);
                                                                                   formasi file-file yang diupload disimpan
  {                                           system(“$converter_app
                                                                                   di dalam $_FILES[<NAMA VARIABEL
     header(“Location: {$_SERVER              $output_arg”);
                                                                                   FORM UNTUK TYPE=FILE>]. $_FILES
     [‘PHP_SELF’]}”);
                                                                                   merupakan associative array sehingga
  }                                                if ($_POST[‘output’] ==
                                                                                   memungkinkan kita untuk memeriksa
  else                                             “PDF”) unlink($_FILES
                                                                                   key error untuk $_FILES[‘worddoc’].
  {                                                [‘worddoc’][‘tmp_name’] .
                                                                                   Apabila bukan nol, maka terjadi kesa-
                                                   “.pdf”);
                                                                                   lahan. Ketika terjadi kesalahan, kita
    $output_arg = “”;                     }
                                                                                   mengirim header untuk membawa kita
    $header_type = “”;                }
                                                                                   kembali ke halaman kita sendiri (yang
    switch ($_POST[‘output’])
                                                                                   karena $_POST belum diset, maka form
    {                                 ?>
                                                                                   kembali ditampilkan).
      case “PDF”:
                                                                                   Apabila file telah diupload dengan lan-
                                     Penjelasan source code:
         $output_arg = “ -m
                                                                                   car, kita memeriksa tipe output yang di-
                                       Pertama-tama, melalui variabel $con-
$mapping_file -p{$_POST
                                                                                   inginkan. Rencananya, kita akan meng-
                                       verter_app, kita mengatur path ke lokasi
[‘paper’]} {$_FILES[‘worddoc’]



76 INFOLINUX 07/2005                                 www.infolinux.web.id
TUTORIAL
Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
                                                                                                                            AntiWord



 gunakan cara kerja seperti berikut. Kita    Khusus untuk output berupa format               yang diperbolehkan untuk di-upload
 memiliki dua variabel: $header_type dan     PDF, kita menghapus file sementara ke-           (Anda bisa membaca manual PHP untuk
 $output_arg. Variabel pertama berguna       tika perintah system() selesai dikerjakan.      lebih lengkapnya). Kedua, dengan code
 untuk melewatkan tipe dokumen (mime         Perhatikanlah isi dari $output_arg. Setiap      seperti ini, orang-orang bisa saja mem-
 type) untuk header HTML, yang akan          file yang di-upload oleh user akan diberi-       buat robot untuk memanggil aplikasi
 berujung bagi browser untuk menindak-       kan nama random tertentu. Nama terse-           kita yang akan berujung pada kegagalan
 lanjuti sesuai tipe file-nya. Misal, tipe    butlah yang disimpan sebagai nama file           service (DoS) karena server kelebihan tu-
 HTML akan ditampilkan sebagai HT-           untuk file yang di-upload ke harddisk ser-       gas. Ada beberapa cara yang bisa dilaku-
 ML, tipe TEXT akan ditampilkan sebagai      ver. Key untuk array $_FILES[‘worddoc’]         kan, misalnya dengan meminta user un-
 TEXT dan tipe lain sesuai pengaturan di     adalah tmp_name. Untuk format output            tuk memasukkan teks pada gambar yang
 browser. Tentunya, untuk ketiga output      berupa TEXT, maka $output_arg hanya             selalu digenerate secara random (Anda
 yang diinginkan, tipe dokumennya ber-       akan berisi nama file random tersebut.           bisa membaca resep pemrograman PHP
 beda. Untuk TEXT, kita menggunakan          Untuk format output berupa PS, maka             milik Steven Haryanto untuk lebih jelas-
 text/plain, untuk PDF, kita mengguna-       akan berisi -m $mapping_file -p {$_              nya). Secara umum, program ini masih
 kan application/pdf dan untuk PS, kita      POST[‘paper’]} dan nama file random              memerlukan banyak perbaikan untuk
 menggunakan application/postscript. Se-     tersebut. Untuk format output berupa            diterapkan pada jaringan publik.
 mentara, variabel $output_arg berisikan     PDF, kita melewatkan output PS ke pro-
                                             gram ps2pdf dan menyimpan ke nama            Bisa kita lihat, dengan memanfaatkan tool-
 semua arguman yang ingin dilewatkan
                                             file random ditambah ekstensi pdf dan         tool open source, kita bisa membangun
 ke program antiword. Dengan demikian,
                                             setelah itu memanggil program cat untuk      solusi yang mungkin akan cukup mahal (ba-
 setelah kita mendapatkan isi kedua varia-
                                             menampilkan isi file PDF ke standard out-     hasa pemrograman, web server, konverter,
 bel tersebut pada blok switch(), kita pun
                                             put, yang akan ditangkap oleh browser.       pembuat PDF umumnya bukan barang mu-
 tinggal memanggil fungsi header() un-
                                             Ada beberapa hal yang mungkin sedikit        rah di dunia proprietary) apabila kita meng-
 tuk melewatkan tipe header dan fungsi
                                             mengganggu. Pertama, tentunya harus          gunakan sistem proprietary.
 system() untuk menjalankan program
 antiword beserta semua parameternya.        diperhatikan pula maksimal ukuran file        Noprianto (noprianto@infolinux.co.id)




                                                                                                                                   77
                                                     www.infolinux.web.id                                   INFOLINUX 07/2005

More Related Content

Similar to Noprianto Antiword

Pemrograman c-wakuadratn
Pemrograman c-wakuadratnPemrograman c-wakuadratn
Pemrograman c-wakuadratnLanoy Jr.
 
R -Sweave/ Sweave For Statistical Programming at LaTeX
R -Sweave/ Sweave For Statistical Programming at LaTeX R -Sweave/ Sweave For Statistical Programming at LaTeX
R -Sweave/ Sweave For Statistical Programming at LaTeX
Hirwanto Iwan
 
Modul praktikum algoritma
Modul praktikum algoritmaModul praktikum algoritma
Modul praktikum algoritma
Rony BolaNk
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
smktamansiswabdg
 
Jobsheet buku digital
Jobsheet buku digitalJobsheet buku digital
Jobsheet buku digital
Miswardi Miswardi
 
Php coder
Php coderPhp coder
Php coder
Sejahtera Affif
 
Arifadli membuat buku-tamu
Arifadli membuat buku-tamuArifadli membuat buku-tamu
Arifadli membuat buku-tamu
Haswi Haswi
 
Membuat buku-tamu dengan Php
Membuat buku-tamu dengan PhpMembuat buku-tamu dengan Php
Membuat buku-tamu dengan Php
Albertz Ace-Red
 
Aplikasi accessories pada windows oleh desi anita
Aplikasi accessories pada windows oleh desi anitaAplikasi accessories pada windows oleh desi anita
Aplikasi accessories pada windows oleh desi anita
desi anita
 
Bab 1a Paradigma Bahasa Pemrograman
Bab 1a   Paradigma Bahasa PemrogramanBab 1a   Paradigma Bahasa Pemrograman
Bab 1a Paradigma Bahasa PemrogramanDimara Hakim
 
Macam software
Macam softwareMacam software
Software Aplikasi Dasar dan Software Khusus
Software Aplikasi Dasar dan Software KhususSoftware Aplikasi Dasar dan Software Khusus
Software Aplikasi Dasar dan Software Khusus
Sinath Sabado
 
Penggunaan xampp
Penggunaan xamppPenggunaan xampp
Penggunaan xamppHaswi Haswi
 
modul PHP
modul PHPmodul PHP
modul PHP
Elni Hazar
 
Pengenalan web design dan programming
Pengenalan web design dan programmingPengenalan web design dan programming
Pengenalan web design dan programmingFrisianlllllllFlag
 
Webprograming
WebprogramingWebprograming
Webprogramingandreboys
 
W E B P R O G R A M M I N G
W E B  P R O G R A M M I N GW E B  P R O G R A M M I N G
W E B P R O G R A M M I N G
Windy Hefitrianti
 
Web programming
Web programmingWeb programming
Web programming
Windy Hefitrianti
 
Ppt tik v
Ppt tik vPpt tik v
Ppt tik v
Eyga Guestha
 
Ppt tik v
Ppt tik vPpt tik v

Similar to Noprianto Antiword (20)

Pemrograman c-wakuadratn
Pemrograman c-wakuadratnPemrograman c-wakuadratn
Pemrograman c-wakuadratn
 
R -Sweave/ Sweave For Statistical Programming at LaTeX
R -Sweave/ Sweave For Statistical Programming at LaTeX R -Sweave/ Sweave For Statistical Programming at LaTeX
R -Sweave/ Sweave For Statistical Programming at LaTeX
 
Modul praktikum algoritma
Modul praktikum algoritmaModul praktikum algoritma
Modul praktikum algoritma
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
Jobsheet buku digital
Jobsheet buku digitalJobsheet buku digital
Jobsheet buku digital
 
Php coder
Php coderPhp coder
Php coder
 
Arifadli membuat buku-tamu
Arifadli membuat buku-tamuArifadli membuat buku-tamu
Arifadli membuat buku-tamu
 
Membuat buku-tamu dengan Php
Membuat buku-tamu dengan PhpMembuat buku-tamu dengan Php
Membuat buku-tamu dengan Php
 
Aplikasi accessories pada windows oleh desi anita
Aplikasi accessories pada windows oleh desi anitaAplikasi accessories pada windows oleh desi anita
Aplikasi accessories pada windows oleh desi anita
 
Bab 1a Paradigma Bahasa Pemrograman
Bab 1a   Paradigma Bahasa PemrogramanBab 1a   Paradigma Bahasa Pemrograman
Bab 1a Paradigma Bahasa Pemrograman
 
Macam software
Macam softwareMacam software
Macam software
 
Software Aplikasi Dasar dan Software Khusus
Software Aplikasi Dasar dan Software KhususSoftware Aplikasi Dasar dan Software Khusus
Software Aplikasi Dasar dan Software Khusus
 
Penggunaan xampp
Penggunaan xamppPenggunaan xampp
Penggunaan xampp
 
modul PHP
modul PHPmodul PHP
modul PHP
 
Pengenalan web design dan programming
Pengenalan web design dan programmingPengenalan web design dan programming
Pengenalan web design dan programming
 
Webprograming
WebprogramingWebprograming
Webprograming
 
W E B P R O G R A M M I N G
W E B  P R O G R A M M I N GW E B  P R O G R A M M I N G
W E B P R O G R A M M I N G
 
Web programming
Web programmingWeb programming
Web programming
 
Ppt tik v
Ppt tik vPpt tik v
Ppt tik v
 
Ppt tik v
Ppt tik vPpt tik v
Ppt tik v
 

More from kresnokoro1945

Formulir Pendaftaran 2009
Formulir Pendaftaran 2009Formulir Pendaftaran 2009
Formulir Pendaftaran 2009kresnokoro1945
 
D A F T A R N I L A I U J I A N P E S A N T R E N K E L A S 3 M T S
D A F T A R  N I L A I  U J I A N  P E S A N T R E N  K E L A S 3  M T SD A F T A R  N I L A I  U J I A N  P E S A N T R E N  K E L A S 3  M T S
D A F T A R N I L A I U J I A N P E S A N T R E N K E L A S 3 M T Skresnokoro1945
 
Yuhefizar Komputer
Yuhefizar KomputerYuhefizar Komputer
Yuhefizar Komputer
kresnokoro1945
 
Sulhan Animasipadaword
Sulhan AnimasipadawordSulhan Animasipadaword
Sulhan Animasipadawordkresnokoro1945
 
Solichin Dreamweaver
Solichin DreamweaverSolichin Dreamweaver
Solichin Dreamweaver
kresnokoro1945
 
S M P Excel Kls8
S M P  Excel Kls8S M P  Excel Kls8
S M P Excel Kls8
kresnokoro1945
 
Paskalis Troubleshoot Printer
Paskalis Troubleshoot PrinterPaskalis Troubleshoot Printer
Paskalis Troubleshoot Printerkresnokoro1945
 
Martin Mematikan Komputer Jarak Jauh
Martin  Mematikan Komputer Jarak JauhMartin  Mematikan Komputer Jarak Jauh
Martin Mematikan Komputer Jarak Jauhkresnokoro1945
 
Ivansudirman Sejarahkomputer
Ivansudirman SejarahkomputerIvansudirman Sejarahkomputer
Ivansudirman Sejarahkomputerkresnokoro1945
 
Dewayudi Downloadvideoyoutube
Dewayudi DownloadvideoyoutubeDewayudi Downloadvideoyoutube
Dewayudi Downloadvideoyoutubekresnokoro1945
 
Dewayudhi G Mail Drive
Dewayudhi  G Mail DriveDewayudhi  G Mail Drive
Dewayudhi G Mail Drivekresnokoro1945
 
Panduan Membuat Wordpress
Panduan  Membuat  WordpressPanduan  Membuat  Wordpress
Panduan Membuat Wordpresskresnokoro1945
 

More from kresnokoro1945 (18)

Amplop Besar U S G 09
Amplop  Besar  U S G 09Amplop  Besar  U S G 09
Amplop Besar U S G 09
 
Formulir Pendaftaran 2009
Formulir Pendaftaran 2009Formulir Pendaftaran 2009
Formulir Pendaftaran 2009
 
D A F T A R N I L A I U J I A N P E S A N T R E N K E L A S 3 M T S
D A F T A R  N I L A I  U J I A N  P E S A N T R E N  K E L A S 3  M T SD A F T A R  N I L A I  U J I A N  P E S A N T R E N  K E L A S 3  M T S
D A F T A R N I L A I U J I A N P E S A N T R E N K E L A S 3 M T S
 
Yuhefizar Komputer
Yuhefizar KomputerYuhefizar Komputer
Yuhefizar Komputer
 
Tua Excel
Tua ExcelTua Excel
Tua Excel
 
Sulhan Animasipadaword
Sulhan AnimasipadawordSulhan Animasipadaword
Sulhan Animasipadaword
 
Solichin Dreamweaver
Solichin DreamweaverSolichin Dreamweaver
Solichin Dreamweaver
 
S M P Excel Kls8
S M P  Excel Kls8S M P  Excel Kls8
S M P Excel Kls8
 
Paskalis Troubleshoot Printer
Paskalis Troubleshoot PrinterPaskalis Troubleshoot Printer
Paskalis Troubleshoot Printer
 
Msdos
MsdosMsdos
Msdos
 
Modul F B
Modul F BModul F B
Modul F B
 
Martin Mematikan Komputer Jarak Jauh
Martin  Mematikan Komputer Jarak JauhMartin  Mematikan Komputer Jarak Jauh
Martin Mematikan Komputer Jarak Jauh
 
Jaka Lan
Jaka LanJaka Lan
Jaka Lan
 
Ivansudirman Sejarahkomputer
Ivansudirman SejarahkomputerIvansudirman Sejarahkomputer
Ivansudirman Sejarahkomputer
 
Dewayudi Downloadvideoyoutube
Dewayudi DownloadvideoyoutubeDewayudi Downloadvideoyoutube
Dewayudi Downloadvideoyoutube
 
Dewayudhi G Mail Drive
Dewayudhi  G Mail DriveDewayudhi  G Mail Drive
Dewayudhi G Mail Drive
 
Andino Kamusti
Andino KamustiAndino Kamusti
Andino Kamusti
 
Panduan Membuat Wordpress
Panduan  Membuat  WordpressPanduan  Membuat  Wordpress
Panduan Membuat Wordpress
 

Noprianto Antiword

  • 1. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial AntiWord Memproses Dokumen Microsoft Word di Web Bagi Anda yang terbiasa bekerja dengan OpenOffice. Ada kalanya, ketika bepergian dan membawa dokumen OpenOffice dan Anda harus melihat isinya sementara tidak ada Open- Office yang terinstal di komputer yang Anda gunakan (ketika di warnet misalnya), apa yang harus dilakukan? Pasti akan lebih mudah apabila Anda memanfaatkan program un- tuk meng-convert dokumen word tersebut ke format yang bisa dibaca di komputer yang sedang digunakan. Di artikel ini, kita akan membahas pembuatan program tersebut. M asalah lupa meng-convert doku- Artikel ini ditulis di distro SUSE Pro 9.1, dan menampilkannya ke standard output men ke format yang lebih umum PHP 4.3.4, Antiword 0.35 dan Ghostscript (layar). Contoh: cukup sering penulis alami. Keti- library 7.07. Untuk distro lain, harusnya ti- $ antiword a.doc ka bepergian dengan satu dokumen dan ter- dak banyak hal yang berubah apabila semua paksa harus melihat isinya sementara kom- program yang dibutuhkan telah terinstal. Untuk meng-convert ke format XML, puter yang sedang digunakan tidak terinstal Anda bisa memberikan opsi -x diikuti oleh Mengenal Antiword OpenOffice misalnya, merupakan masalah nama DTD. Antiword yang penulis gunakan yang cukup mengganggu. Kita sebenarnya Sebelum kita melangkah ke aplikasi, ada hanya bisa menggunakan DTD berupa db( bisa saja mengextract dokumen SXW meng- baiknya apabila kita mengenal program an- docbook). Berikut ini adalah contoh kon- gunakan WinZip, lantas membaca file XML tiword terlebih dahulu. Program Antiword versi dokumen MS Word ke format XML: yang terkandung di dalamnya. Bisa saja. Ta- adalah program yang ditujukan untuk me- $ antiword -x db a.doc pi, bagaimana kalau tidak ada WinZip juga? nampilkan isi dari dokumen MS Word. Pa- Seperti yang telah dikatakan, akan lebih mu- da awalnya, format yang digunakan untuk Untuk meng-convert ke format PS, Anda dah apabila memanfaatkan converter online output hanyalah file teks. Namun seiring bisa memberikan opsi -p, diikuti oleh ukuran untuk dokumen word. Anda bisa memilih dengan perkembangannya, saat ini, pro- kertas seperti letter atau a4. Ukuran kertas di- untuk meng-convert ke format yang lebih gram ini juga bisa dapat meng-convert ke berikan dalam huruf kecil. Dalam beberapa umum seperti TEXT atau PDF. format PS. Format output teks tentunya me- hal, apabila Anda mempergunakan encoding Di dalam artikel kali ini, kita akan me- miliki sejumlah keterbatasan seperti gambar UTF-8, kombinasi Postscript dan UTF-8 ti- manfaatkan PHP, antiword dan program dan atribut layout lain. Dengan format PS, daklah didukung. Oleh karena itu, kita perlu ps2pdf untuk membangun converter online hal-hal tersebut bisa ditangani. Bagi yang memberikan opsi -m, untuk memberikan dokumen Word ke beberapa format lain XML mania, Anda juga bisa memanfaatkan file yang berisikan character-mapping agar seperti TEXT, PDF ataupun PS. Aplikasi antiword untuk meng-convert ke format file PS tetap bisa dihasilkan. File-file charac- yang kita bangun dapat dihost di server web XML. ter mapping tersebut sudah datang bersama untuk dapat pula menyediakan servis gratis Program ini bisa di-download di http:// paket antiword dan umumnya terletak di kepada pengguna internet lain. www.winfield.demon.nl/, walaupun, umum- /usr/share/antiword. Anda harus menyebut- Tentunya, hasil konversi tidaklah sempur- nya antiword sudah dipaketkan bersama kan nama filenya saja dan bukan path leng- na. Program yang kita gunakan untuk meng- distro Anda. Cobalah untuk melihat ke kap untuk opsi -m. Contoh berikut ini akan convert, antiword, secara umum hanya dapat dalam CD/DVD distribusi Anda sebelum mengconvert a.doc format PS (ukuran kertas mengekstrak teks dan atribut-atribut layout men-download dan mengompilasi dari letter) dengan menggunakan pemetaan ka- sederhana lainnya. Gambar terkadang bisa, source. rakter UTF-8 ke ISO-8859-1: namun tidak bisa diharapkan untuk mirip Cara menggunakan program ini sangat- $ antiword -pletter -m8859-1.txt seperti dokumen word aslinya. Tapi, tentu- lah mudah. Anda cukup memberikan argu- a.doc > a.ps nya tidak masalah. Dapat melihat isi saja su- men berupa nama file dokumen MS Word, dah sangat berguna. Anda bahkan bisa meli- dan secara default, antiword akan meng- Program ini akan selalu mencetak hasil hat hidden text dokumen MS Word Anda. convert dokumen tersebut ke format TEXT konversi ke standard output. Apabila kita 74 INFOLINUX 07/2005 www.infolinux.web.id
  • 2. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial AntiWord ingin menyimpan ke dalam file, kita harus program antiword dan ps2pdf (apabila dibu- meredireksi standard output ke nama file tuhkan) untuk menghasilkan output sesuai seperti contoh sebelumnya. format output yang dipilih oleh user. Output Catatan tambahan untuk konversi ke tersebut kemudian dikembalikan ke browser format PS. Antiword memiliki dua opsi lengkap dengan mime type-nya dan browser tambahan yaitu -i untuk image level dan - akan menangani output tersebut sesuai pe- L untuk mode landscape. Gunakan sesuai ngaturan pada browser. preferensi Anda. Anda bisa saja membangun service untuk Baik. Antiword mampu meng-convert publik. Masalahnya adalah, siapa yang mau ke PS dan XML. Tapi saya ingin format memberikan (meng-upload) dokumennya PDF. Apa yang harus saya lakukan? Anti- begitu saja kepada pihak yang tidak dikenal. word memang tidak bisa mengconvert lang- Berikut ini adalah source code docon- sung ke format PDF, namun Antiword su- web.php. Penjelasan setelah source code. dah melakukan pekerjaan yang sangat baik <? dengan dapat mengconvert ke format TEXT /* dan format PS, sebab: doconweb v0.1 Anda bisa meng-convert langsung for- nop, 10052005, 10:48 mat TEXT ke format PDF dengan me- gpl manfaatkan program text2pdf yang bisa */ didapatkan di http://www.eprg.org/pd- fcorner/text2pdf/. Program ini mampu $app_name = “doconweb”; meng-convert format TEXT ke PDF 1.1 $app_version = “0.1”; dengan sangat cepat dan cukup bersih. $app_copy = “(c) nop 2005, GPL”; Dalam tulisan kali ini, kita tidak me- $app_extra = “(use ghostscript manfaatkan program ini karena setelah library (c) Peter Deutsch beberapa kali mencoba, penulis lebih <ghost@aladdin.com> and senang untuk menggunakan cara yang antiword (c) A.J. van Os akan kita bahas selanjutnya. <antiword@winfield.demon.nl>)”; Anda bisa memanfaatkan output PS dari antiword dan menggunakan pro- $converter_app = “/usr/bin/ gram ps2pdf yang datang bersama paket antiword”; ghostscript library. Dengan demikian, $mapping_file = “8859-1.txt”; kita memberi perintah sama seperti keti- ka kita ingin meng-convert ke format PS. Setelah itu, kita melewatkan output an- if (!$_POST) tiword ke program ps2pdf dan menyim- { pan hasil konversi ke sebuah file PDF. echo “ <html> Sebagai contoh untuk konversi ke PDF <head> memanfaatkan ps2pdf: <title></title> $ antiword -m8859-1.txt -pletter </head> a.doc | ps2pdf - > a.pdf <body> <h3>$app_name $app_version</ Demikianlah pengenalan menggunakan h3> $app_extra program antiword. Berikut ini, kita akan <hr noshade> melihat bagaimana memanfaatkan pro- “; gram-program tersebut untuk menghasil- kan konverter online dokumen MS Word. echo “ <form action=’{$_ Doconweb SERVER[‘PHP_SELF’]}’ method= Secara umum, aplikasi yang akan kita bangun ’post’ enctype=’multipart/form- sangatlah sederhana. Apa yang kita butuhkan data’> adalah file yang di-upload oleh user. Setelah <table border=1> file diterima, kita hanya perlu memanggil <tr><td>Word 75 www.infolinux.web.id INFOLINUX 07/2005
  • 3. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial AntiWord document</td><td><input type= ’file’ name=’worddoc’></ td></tr> <tr><td>Output format</td><td> <select name=’output’> <option value=’PDF’> PDF</option> <option value=’PS’> PS</option> <option value=’TEXT’> Aplikasi doconweb. TEXT</option> program yang kita gunakan, yaitu anti- </select> [‘tmp_name’]} | ps2pdf - > word. Di komputer penulis, antiword </td></tr> {$_FILES[‘worddoc’][‘tmp_ berada di /usr/bin. Sementara, variabel <tr><td>Paper size (PDF & PS name’]}.pdf && cat {$_FILES $mapping_file berisikan nama file yang only)</td><td> [‘worddoc’][‘tmp_name’]}.pdf”; digunakan untuk pemetaan karakter. <select name=’paper’> $header_type = Karena antiword mengharuskan nama <option value= “Content-type: application/pdf”; file dan bukan path lengkap, maka kita ’letter’>Letter</ break; harus menyebutkan nama filenya saja, option> case “PS”: yang tersimpan di direktori /usr/share/ <option value=’a4’> $output_arg = “ -m antiword/. Pemetaan karakter digunakan A4</option> $mapping_file -p untuk output ke PS dan PDF. </select> {$_POST[‘paper’]} {$_ Setelah itu, kita memeriksa variabel $_ </td></tr> FILES[‘worddoc’][‘tmp_ POST. Apabila belum diset, maka form <tr><td>&nbsp;</td><td><input name’]}”; harus ditampilkan. Di form ini, kita me- type=’submit’ value=’view’></ $header_type = nyediakan fasilitas upload kepada user, td></tr> “Content-type: beserta parameter lain untuk konversi </table> application/postscript”; seperti tipe output dan ukuran kertas. </form> break; Tipe enkode form adalah multipart/ “; case “TEXT”: form-data yang dapat digunakan untuk $output_arg = “ {$_ fasilitas upload. echo “ FILES[‘worddoc’][‘tmp_ Apabila pada pemeriksaan form sebelum- </body> name’]}”; nya variabel $_POST telah diset, maka ber- </html> $header_type = arti user telah men-submit form tersebut. “; “Content-type: text/ Kita pun memeriksa apakah terjadi error } plain”; pada saat meng-upload. Error bisa terjadi else break; karena beberapa hal. Salah satunya adalah { } karena user tidak menyebutkan nama file- if ($_FILES[‘worddoc’][‘error’ nya. Atau, terjadi kegagalan transmisi. In- ] != 0) header($header_type); formasi file-file yang diupload disimpan { system(“$converter_app di dalam $_FILES[<NAMA VARIABEL header(“Location: {$_SERVER $output_arg”); FORM UNTUK TYPE=FILE>]. $_FILES [‘PHP_SELF’]}”); merupakan associative array sehingga } if ($_POST[‘output’] == memungkinkan kita untuk memeriksa else “PDF”) unlink($_FILES key error untuk $_FILES[‘worddoc’]. { [‘worddoc’][‘tmp_name’] . Apabila bukan nol, maka terjadi kesa- “.pdf”); lahan. Ketika terjadi kesalahan, kita $output_arg = “”; } mengirim header untuk membawa kita $header_type = “”; } kembali ke halaman kita sendiri (yang switch ($_POST[‘output’]) karena $_POST belum diset, maka form { ?> kembali ditampilkan). case “PDF”: Apabila file telah diupload dengan lan- Penjelasan source code: $output_arg = “ -m car, kita memeriksa tipe output yang di- Pertama-tama, melalui variabel $con- $mapping_file -p{$_POST inginkan. Rencananya, kita akan meng- verter_app, kita mengatur path ke lokasi [‘paper’]} {$_FILES[‘worddoc’] 76 INFOLINUX 07/2005 www.infolinux.web.id
  • 4. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial AntiWord gunakan cara kerja seperti berikut. Kita Khusus untuk output berupa format yang diperbolehkan untuk di-upload memiliki dua variabel: $header_type dan PDF, kita menghapus file sementara ke- (Anda bisa membaca manual PHP untuk $output_arg. Variabel pertama berguna tika perintah system() selesai dikerjakan. lebih lengkapnya). Kedua, dengan code untuk melewatkan tipe dokumen (mime Perhatikanlah isi dari $output_arg. Setiap seperti ini, orang-orang bisa saja mem- type) untuk header HTML, yang akan file yang di-upload oleh user akan diberi- buat robot untuk memanggil aplikasi berujung bagi browser untuk menindak- kan nama random tertentu. Nama terse- kita yang akan berujung pada kegagalan lanjuti sesuai tipe file-nya. Misal, tipe butlah yang disimpan sebagai nama file service (DoS) karena server kelebihan tu- HTML akan ditampilkan sebagai HT- untuk file yang di-upload ke harddisk ser- gas. Ada beberapa cara yang bisa dilaku- ML, tipe TEXT akan ditampilkan sebagai ver. Key untuk array $_FILES[‘worddoc’] kan, misalnya dengan meminta user un- TEXT dan tipe lain sesuai pengaturan di adalah tmp_name. Untuk format output tuk memasukkan teks pada gambar yang browser. Tentunya, untuk ketiga output berupa TEXT, maka $output_arg hanya selalu digenerate secara random (Anda yang diinginkan, tipe dokumennya ber- akan berisi nama file random tersebut. bisa membaca resep pemrograman PHP beda. Untuk TEXT, kita menggunakan Untuk format output berupa PS, maka milik Steven Haryanto untuk lebih jelas- text/plain, untuk PDF, kita mengguna- akan berisi -m $mapping_file -p {$_ nya). Secara umum, program ini masih kan application/pdf dan untuk PS, kita POST[‘paper’]} dan nama file random memerlukan banyak perbaikan untuk menggunakan application/postscript. Se- tersebut. Untuk format output berupa diterapkan pada jaringan publik. mentara, variabel $output_arg berisikan PDF, kita melewatkan output PS ke pro- gram ps2pdf dan menyimpan ke nama Bisa kita lihat, dengan memanfaatkan tool- semua arguman yang ingin dilewatkan file random ditambah ekstensi pdf dan tool open source, kita bisa membangun ke program antiword. Dengan demikian, setelah itu memanggil program cat untuk solusi yang mungkin akan cukup mahal (ba- setelah kita mendapatkan isi kedua varia- menampilkan isi file PDF ke standard out- hasa pemrograman, web server, konverter, bel tersebut pada blok switch(), kita pun put, yang akan ditangkap oleh browser. pembuat PDF umumnya bukan barang mu- tinggal memanggil fungsi header() un- Ada beberapa hal yang mungkin sedikit rah di dunia proprietary) apabila kita meng- tuk melewatkan tipe header dan fungsi mengganggu. Pertama, tentunya harus gunakan sistem proprietary. system() untuk menjalankan program antiword beserta semua parameternya. diperhatikan pula maksimal ukuran file Noprianto (noprianto@infolinux.co.id) 77 www.infolinux.web.id INFOLINUX 07/2005