Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1
[TUTORIAL] Membuat Dokumen / Laporan PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX dengan PHP dan LibreOffice
Bahasa pemrograman tidak hanya terbatas pada PHP. Dapat menggunakan bahasa pemrograman lain. Dengan syarat bahasa pemrograman tersebut dapat membaca / menulis file dan menjalankan perintah CLI.
LibreOffice Licenses
LibreOffice is Free Software. LibreOffice is made available subject to the terms of the Mozilla Public License v2.0 which is reproduced below. It is based on code from Apache OpenOffice made available under the Apache License 2.0 but also includes software which differs from version to version under a large variety of other Open Source licenses.
https://www.libreoffice.org/about-us/licenses/
Sekiranya LibreOffice bermanfaat, silakan donasi ke : https://www.libreoffice.org/donate/https://www.libreoffice.org/about-us/licenses/
[SESI 1] Bermain dengan LibreOffice
- [Langkah 1] Download dan install LibreOffice

- [Langkah 2] Membuat naskah dokumen dan konversi menjadi .FODT

- [Langkah 3] Konversi file .FODT menjadi .PDF / .DOC / .DOCX melalui Command Line

- [Langkah 4] Menjalankan / menghapus LibreOffice sebagai service

- [Langkah 5] Konversi file .FODT menjadi .PDF / .DOC / .DOCX melalui Command Line via LibreOffice service

[SESI 2] Membuat template dokumen
- [Langkah 1] Membuat template .DOC / .DOCX dan konversi menjadi .FODT

- [Langkah 2] Editing template .FODT
- Contoh Bentuk 1 (Tabular Sederhana)

- Contoh Bentuk 2 (Tabular Berwarna Ganjil Genap)

- Contoh Bentuk 3 (Tabular w/ Header, Footer, Page Numbering, Table Header)

- Contoh Bentuk 4 (Tabular, Loop Data Bertingkat)

- Contoh Bentuk 5 (Tabular Dengan Data Gambar)
- Contoh Bentuk 6 (List, List Bertingkat, Chart)
- Contoh Bentuk 7 (Sejenis Buku Panduan / Brosur / Leaflet)
- [Langkah 3] Mengenal tag dan style .FODT
[SESI 3] PHP script, membuat dokumen menggunakan template .FODT
- [Langkah 1] Script PHP sederhana

- [Langkah 2] Script PHP template dgn loop data
- Koding Utk Contoh Bentuk 1

- Koding Utk Contoh Bentuk 2

- Koding Utk Contoh Bentuk 3

- Koding Utk Contoh Bentuk 5
- Koding Utk Contoh Bentuk 7

- [Langkah 3] Script PHP template dgn loop data di dalam loop
- Koding Utk Contoh Bentuk 4

- Koding Utk Contoh Bentuk 6
[TAMBAHAN] Catatan pribadi kekurangan dan kelebihan penggunaan LibreOffice dan masalah yg pernah ditemui
Bagian 1, Bagian 2, Bagian 3
[CONTOH] Contoh template, database dan koding PHP
- [1] Laporan Excel (Tabular Sederhana)

Tiruan laporan contoh 1, hanya diubah menggunakan Excel dari yg sebelumnya menggunakan Word.
- [2] Laporan PowerPoint (Sejenis Buku Panduan / Brosur / Leaflet)
Tiruan laporan contoh 7, hanya diubah menggunakan PowerPoint dari yg sebelumnya menggunakan Word.
Catatan :
- Sepanjang tutorial ini, saya berasumsi menggunakan OS Windows, OS lain silakan menyesuaikan sendiri.
(LibreOffice, MySQL, PHP, Web Server tersedia baik utk Linux, Windows, Mac OS, jadi semuanya bisa menggunakan tutorial ini)
- OS yg saya gunakan adalah Microsoft Windows Server 2008 R2 x64, versi Windows yg lain silakan menyesuaikan sendiri.
- LibreOffice yg dipergunakan adalah LibreOffice 6 x64, dgn letak folder default
C:\Program Files\LibreOffice\
versi LibreOffice lain silakan menyesuaikan nama folder-nya.
- Opsi dan parameter utk LibreOffice biasanya cukup ditulis dgn tanda '-' : soffice.exe -opsi
di OS lain mungkin berbeda, menggunakan '--' : soffice.exe --opsi
silakan baca dokumentasi LibreOffice utk Command Line : https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters
- Penggunaan LibreOffice utk generate dokumen / laporan hanya dimungkinkan jika mesin server dimiliki / dikelola sendiri.
- Untuk pembelajaran / uji coba / presentasi / demo / aplikasi lokal, masih dimungkinkan dipakai di localhost atau di dalam jaringan LAN.
- Versi yg sudah pernah saya pakai utk membuat report / dokumen dan berhasil adalah versi : 4, 5, dan 6.
(Dari pertama pakai cara ini, tahun 2012 / 2013, belum pernah gagal / mengecewakan
)
- Bahasan utama menggunakan contoh naskah / template PDF / Microsoft Word (DOC / DOCX), naskah / template lain XLS, XLSX, PPT, PPTX hanya akan berupa contoh di akhir tutorial.
- Database tidak hanya terbatas pada menggunakan MySQL, dapat menggunakan database engine lain.
- Web Server tidak hanya terbatas pada menggunakan Apache, dapat menggunakan web server lain.
(LibreOffice, MySQL, PHP, Web Server tersedia baik utk Linux, Windows, Mac OS, jadi semuanya bisa menggunakan tutorial ini)
- OS yg saya gunakan adalah Microsoft Windows Server 2008 R2 x64, versi Windows yg lain silakan menyesuaikan sendiri.
- LibreOffice yg dipergunakan adalah LibreOffice 6 x64, dgn letak folder default
C:\Program Files\LibreOffice\
versi LibreOffice lain silakan menyesuaikan nama folder-nya.
- Opsi dan parameter utk LibreOffice biasanya cukup ditulis dgn tanda '-' : soffice.exe -opsi
di OS lain mungkin berbeda, menggunakan '--' : soffice.exe --opsi
silakan baca dokumentasi LibreOffice utk Command Line : https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters
- Penggunaan LibreOffice utk generate dokumen / laporan hanya dimungkinkan jika mesin server dimiliki / dikelola sendiri.
- Untuk pembelajaran / uji coba / presentasi / demo / aplikasi lokal, masih dimungkinkan dipakai di localhost atau di dalam jaringan LAN.
- Versi yg sudah pernah saya pakai utk membuat report / dokumen dan berhasil adalah versi : 4, 5, dan 6.
(Dari pertama pakai cara ini, tahun 2012 / 2013, belum pernah gagal / mengecewakan

- Bahasan utama menggunakan contoh naskah / template PDF / Microsoft Word (DOC / DOCX), naskah / template lain XLS, XLSX, PPT, PPTX hanya akan berupa contoh di akhir tutorial.
- Database tidak hanya terbatas pada menggunakan MySQL, dapat menggunakan database engine lain.
- Web Server tidak hanya terbatas pada menggunakan Apache, dapat menggunakan web server lain.
Tutorial akan dibuat bertahap, tergantung waktu senggang.

Jika ingin bertanya (walaupun tutorial belum selesai, diusahakan tetap dijawab), silakan buat thread baru di http://diskusiweb.com/categories/tanya-jawab
Gambar ilustrasi menyusul

Sebelum tutorial selesai, thread akan di lock.
▲ Daftar Isi ▲ |
This discussion has been closed.
Comments
[Langkah 1] Download dan install LibreOffice
Download dan install terlebih dahulu LibreOffice.
https://www.libreoffice.org/download/download/
Download sesuai versi OS dan mesin yg dipakai.
Mesin x64 tetap bisa memakai LibreOffice x86, biarpun LibreOffice versi x64 juga ada.
Bisa juga download versi lama.
https://downloadarchive.documentfoundation.org/LibreOffice/old/
Setelah proses download selesai, lakukan instalasi.
Lakukan proses instalasi dgn cara biasa, tidak ada tambahan / pengurangan langkah apapun.
Siapkan 1 (satu) folder khusus utk menyimpan dokumen / template.
Anggap folder itu adalah : C:\template\
Siapkan 1 (satu) folder khusus utk folder pengolahan sementara (temporary folder)
Anggap folder itu adalah : C:\temp\
Langkah awal dicoba bermain dengan naskah dokumen biasa.
Silakan membuat dokumen apa pun, dengan isi sembarang.
Gunakan aplikasi word prosesor yg sudah biasa dipakai dan familiar dgn fungsi-fungsinya.
Jika biasa memakai Microsoft Office, silakan dipergunakan.
Tapi jika sudah terbiasa memakai LibreOffice, silakan gunakan LibreOffice.
Atau silakan memakai word prosesor lain, yg penting hasil keluarannya bisa dibuka dgn LibreOffice.
Saya anggap word prosesor yg dipakai : Microsoft Office
- Buat naskah bebas
- Anggap nama file-nya C:\template\naskah.doc
- Tutup Microsoft Word
- Buka LibreOffice Writer
- Buka file dokumen C:\template\naskah.doc yg sudah disimpan.
Biasanya ada sedikit perbedaan, tidak 100% sama persis, sepengalaman saya mungkin sekitar 99% sama.
- Tutup LibreOffice Writer
tapi bukan itu tujuannya.
Yang akan dicoba dilakukan adalah mengkonversi file .FODT yg sudah jadi, menjadi file PDF / DOC / DOCX melalui Command Line, karena ini yg nanti akan dipergunakan di PHP.
Catatan :
- Untuk file Microsoft PowerPoint (.PPT / .PPTX), buka dengan LibreOffice Impress, simpan menjadi .FODP
- Proses konversi
.FODS menjadi .XLS / .XLSX / .PDF
.FODP menjadi .PPT / .PPTX / .PDF
mengikuti langkah-langkah selanjutnya hanya dengan mengubah parameter yang disertakan
- Buka Command Line (bisa lewat shortcut, atau lewat run : cmd).
- File-file yg sudah tersedia :
C:\template\naskah.doc (hasil Microsoft Word)
C:\template\naskah.fodt (hasil konversi LibreOffice Writer)
- Rename terlebih dahulu C:\template\naskah.doc menjadi nama lain.
Misal C:\template\naskah-copy.doc
Konversi FODT -> PDF
- Ketik dan jalankan perintah di Command Line :
Tunggu beberapa saat ... file C:\template\naskah.pdf sudah berhasil dibuat.
Konversi menjadi FODT -> DOC (Microsoft Word 97)
- Ketik dan jalankan perintah di Command Line :
Tunggu beberapa saat ... file C:\template\naskah.doc sudah berhasil dibuat.
Konversi menjadi FODT -> DOCX (Microsoft Word 2007)
- Ketik dan jalankan perintah di Command Line :
Tunggu beberapa saat ... file C:\template\naskah.docx sudah berhasil dibuat.
Catatan :
https://help.LibreOffice.org/Common/Starting_the_Software_With_Parameters
.XLS : -convert-to xls -outdir "C:\template" "C:\template\naskah_excel.fods"
.XLSX : -convert-to xlsx -outdir "C:\template" "C:\template\naskah_excel.fods"
.PPT : -convert-to ppt -outdir "C:\template" "C:\template\naskah_powerpoint.fodp"
.PPTX : -convert-to pptx -outdir "C:\template" "C:\template\naskah_powerpoint.fodp"
File .FODT, .FODS, .FODP semuanya dapat dikonversi menjadi file .PDF
Khusus utk .FODS, sebelum dijadikan .PDF, lakukan "Set Print Area" dan atur orientasi dokumen terlebih dahulu saat membuat template awal dgn Microsoft Excel agar hasil PDF sesuai keinginan.
Menjalankan LibreOffice sebagai service
artinya banyak user melakuan permintaan dokumen secara bersamaan.
Jika tidak dijalankan sebagai service, kemungkinan konversi dokumen akan gagal.
PC / Server akan hang atau tidak dapat melayani permintaan dokumen lebih lanjut.
- Buka Task Manager, run : taskmgr
- Urutkan berdasar "Image Name"
- Cari kumpulan aplikasi yg dimulai dgn huruf "s", pastikan tidak ada soffice.exe & soffice.bin di daftar itu
- Buka Command Line, run : cmd
- Utk menjalankan LibreOffice sbg service, ketik dan jalankan perintah :
host 127.0.0.1 (localhost)
port 8080
- Pastikan soffice.exe & soffice.bin sudah terdaftar di Task Manager.
Menghapus LibreOffice sebagai service
Jika ingin membuka LibreOffice seperti biasa, maka LibreOffice harus dihapus terlebih dahulu dari Task Manager.
[A] Untuk menghapus service LibreOffice, dapat dilakukan "secara paksa" dari Task Manager
- Pilih "soffice.bin" atau "soffice.exe"
- Klik kanan
- Pilih "End Process Tree"
[B] Atau cukup melakukan proses konversi dokumen dgn perintah semacam :
- Pastikan soffice.exe & soffice.bin sudah terhapus dan tidak terdaftar lagi di Task Manager.
Untuk mesin yg digunakan untuk pengembangan aplikasi / pembuatan template, sebaiknya tidak dijalankan sebagai service kecuali utk uji coba.
Karena jika dijalankan sebagai service, maka LibreOffice tidak dapat dibuka misalnya utk membuka file dokumen DOC utk diperiksa layout-nya, diedit dan dikonversi menjadi FODT.
Dikarenakan perintah konversi biasa akan menyebabkan service LibreOffice terhapus,
maka proses konversi harus dilakukan dgn cara lain.
- Hapus terlebih dahulu file-file uji coba sebelumnya di folder C:\template\.
Sisakan hanya file-file :
C:\template\naskah-copy.doc
C:\template\naskah.fodt
- Pastikan di dalam folder LibreOffice sudah terdapat C:\Program Files\LibreOffice\program\python.exe
- Download unoconv dari https://github.com/dagwieers/unoconv (tidak perlu di download semua)
- Yg dibutuhkan hanya file https://raw.githubusercontent.com/dagwieers/unoconv/master/unoconv
- Klik kanan link di atas, pilih "Save Link As...", simpan jadi unoconv (tanpa ekstensi)
- Jika muncul tambahan ekstensi (biasanya jika disimpan dari browser Chrome), misal .txt, hapus ekstensi tersebut
- Simpan file unoconv (tanpa ekstensi) di folder C:\Program Files\LibreOffice\program\
- Pastikan LibreOffice sudah jalan sebagai service
Jika belum jalan sebagai service, jalankan terlebih dahulu
- Buka Command Line, run : cmd
Konversi FODT -> PDF via LibreOffice service
- Ketik dan jalankan perintah di Command Line :
- File PDF hasil konversi akan muncul di folder C:\temp\
- Hasil file PDF sudah bisa dibuka diperiksa kebenarannya
- Konversi menjadi tipe dokumen lain menyesuaikan parameter yg ada.
Konversi FODT -> DOC via LibreOffice service Konversi FODT -> DOCX via LibreOffice service Utk DOCX Microsoft Office 2007 di unoconv, parameter -f yg dipergunakan "docx7", bukan "docx".
Utk versi unoconv lama, seingat saya "docx".
Hal ini mungkin dikarenakan munculnya Microsoft Office versi baru yg mempunyai format dokumen baru (Microsoft Office Open XML format) yg juga memakai ekstensi .DOCX.
Jadi utk format DOCX Microsoft Office 2007 ditambah "7".
Parameter "docx" tetap dapat dipergunakan, tapi merujuk pada format dokumen Microsoft Office Open XML (mungkin dipergunakan di Microsoft Office 2010 atau yg lebih baru).
[Langkah 1] Membuat template .DOC / .DOCX dan konversi menjadi .FODT
Seperti pada [Sesi 1] [Langkah 2] Membuat naskah dokumen dan konversi menjadi .FODT
Pembuatan template sangat mudah dengan menggunakan Microsoft Word untuk menghasilkan file DOC / DOCX.
Selanjutnya dengan menggunakan LibreOffice Writer dikonversi menjadi file FODT.
Hanya untuk isi dokumen yg akan diganti melalui koding, yg akan dijadikan "variable template", dapat menggunakan data dummy pada saat pembuatan dokumen awal.
"Variable template" dapat diperkirakan dan direncanakan utk diletakkan di mana pun di dalam bagian dokumen yg mana pun, di halaman berapa pun, dengan format dan bentuk apa pun.
Silakan rancang dan buat bentuk dan layout sesuai kebutuhan.
Setelah dokumen FODT jadi, maka dapat mengikuti langkah-langkah berikut agar file FODT tersebut dapat dipergunakan di dalam koding.
Bentuk paling sederhana dari template FODT
- Menggunakan file C:\template\naskah.fodt sederhana di contoh awal.
File terlampir di attachment (terkompres, silakan di-extract terlebih dahulu) :
http://diskusiweb.com/uploads/editor/0x/5q6s99g7r50f.zip
- Buka file tersebut menggunakan aplikasi text editor biasa, sejenis Notepad.
Gunakan text editor lain yg lengkap fiturnya dan dapat membaca file text UTF-8.
https://en.wikipedia.org/wiki/List_of_text_editors#Graphical_user_interface
Tidak menyarankan juga editing secara visual menggunakan Microsoft Word / LibreOffice Writer, karena dapat membuat variable template yg akan dibuat nantinya tidak terbaca karena tercampur dengan tag-tag XML.
Saya sendiri menggunakan UltraEdit sebagai text editor harian utk koding.
Untuk selanjutnya, rujukan dan capture gambar menggunakan referensi UltraEdit.
- Cari text seperti yg tertulis pada bagian awal dari dokumen : Hello World!
- Maka akan ditemukan bentuk XML seperti berikut (text panjang dipotong untuk menyederhanakan posting)
- Untuk membuat template menggunakan file FODT, maka bagian-bagian yang akan diganti melalui script PHP harus diganti dengan suatu identitas yg unik, dalam hal ini saya sebut "variable template"
- "Variable template" bebas dapat dibuat menurut selera, hanya mensyaratkan identitas tersebut harus :
- unik, spesifik, gampang diingat,
- sebisa mungkin mencerminkan isi,
- tidak mengandung karakter yg umum ada di dalam file XML
- bebas menggunakan huruf besar kecil selama bisa dimengerti
- Contoh "variable template" yg dapat dipergunakan : {nama_var} , {NAMAVAR} , ##nama-var## , dan lainnya(semisal jangan menggunakan karakter < / > ),
- Pada contoh dokumen di atas, semisal seluruh text yg ada dapat diganti melalui script PHP akan menjadi
Jika saat membuat dokumen bagian itu dibuat tebal, maka isinya nanti juga akan tebal, begitu seterusnya.
- Simpan file FODT tersebut dgn nama lain sehingga file asal tetap dapat digunakan sebagai rujukan pengecekan error jika terjadi kesalahan. Misal disimpan menjadi : C:\template\naskah-template.fodt
Saat menyimpan file, gunakan encoding UTF-8.
http://diskusiweb.com/uploads/editor/2c/mrxfy090yinw.zip
- File template C:\template\naskah-template.fodt sudah siap digunakan di dalam koding PHP
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 1] Script PHP sederhana
Catatan :
Selama bahasa pemrograman itu dapat
- membaca file,
- mengganti "variable template" dgn suatu nilai,
- menyimpan file,
- dan menjalankan perintah melalui CLI
maka aplikasi yg dibangun dgn bahasa pemrograman tersebut juga dapat men-generate laporan / dokumen yg sama dengan menggunakan LibreOffice.Contoh bahasa pemrograman lain yg dapat digunakan : Delphi, C/C++, C#, VisualBasic, dll.
File contoh selalu disertakan di attachment.
[Langkah 2] Editing template .FODT
Berikut akan dicontohkan bentuk-bentuk template yg dapat dibuat.
Template tidak terbatas dgn bentuk yg dicontohkan, benar-benar bebas, selama dapat dibuat dengan LibreOffice.
Contoh Bentuk 1 (Tabular Sederhana)
Hanya dengan header tabel dan isinya, dengan layout header warna gelap, dan border sederhana.
File DOCX (list1.docx) & hasil konversi FODT (list1.fodt) :
http://diskusiweb.com/uploads/editor/ns/lx4xscynxfeg.zip
(silakan ekstrak ke folder C:\template\)
Buka file C:\template\list.fodt dgn text editor, maka akan ditemukan perulangan data
Bagian berulang adalah bagian data yg dapat dan akan diisi melalui koding.
Data yg diisikan dari koding dapat berasal dari perhitungan atau data dari database.
Buka dokumen text baru, kosong.
Copy bagian perulangan data, lalu salin ke dokumen text kosong tersebut.
Hapus bagian berulang, sisakan cukup untuk template 1 data.
Ganti data dengan "variable template" yg sesuai
Kembali ke dokumen C:\template\list1.fodt.
Ganti bagian data berulang yg sudah diambil dgn "variable template" {DATA}
File template pertama sudah siap dipergunakan.
http://diskusiweb.com/uploads/editor/wm/mbe4wxtip978.zip
dengan letak dan penamaan file :
- C:\template\list1-template.fodt
- C:\template\list1-data.fodt
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 2] Script PHP template dgn loop data : Koding Untuk Contoh Bentuk 1
File contoh selalu disertakan di attachment.
[Langkah 2] Editing template .FODT (lanjutan)
Contoh Bentuk 2 (Tabular Berwarna Ganjil Genap)
File DOCX (list2.docx) & hasil konversi FODT (list2.fodt) :
http://diskusiweb.com/uploads/editor/ek/a0r3fosejql2.zip
(silakan ekstrak ke folder C:\template\)
Buka file C:\template\list2.fodt dgn text editor, maka akan ditemukan perulangan data
Bagian berulang terbagi menjadi 2, baris GANJIL (1,3,...) dan baris GENAP (2,4,...).
Buka 2 (dua) dokumen text baru, kosong.
Copy bagian perulangan data, lalu salin ke tiap-tiap dokumen text kosong tersebut.
Pada dokumen text baru pertama, sisakan hanya baris pertama, ganti data dengan "variable template" yg sesuai
Pada dokumen text baru kedua, sisakan hanya baris kedua, ganti data dengan "variable template" yg sesuai
Kembali ke dokumen C:\template\list1.fodt.
Ganti bagian data berulang yg sudah diambil dgn "variable template" {DATA}
File template kedua sudah siap dipergunakan.
http://diskusiweb.com/uploads/editor/b6/3496di4kdq8p.zip
dengan letak dan penamaan file :
- C:\template\list2-template.fodt
- C:\template\list2-data-ganjil.fodt
- C:\template\list2-data-genap.fodt
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 2] Script PHP template dgn loop data : Koding Untuk Contoh Bentuk 2
File contoh selalu disertakan di attachment.
[Langkah 2] Editing template .FODT (lanjutan)
Contoh Bentuk 3 (Tabular w/ Header, Footer, Page Numbering, Table Header)
Terdapat :
- Header / kop dokumen pada halaman pertama
- Header / footer tiap halaman
- Page numbering di footer
- Gambar logo
- Header / judul tabel yg berulang jika melewati halaman
- Border tabel sederhana
File DOCX (list3.docx) & hasil konversi FODT (list3.fodt) :
http://diskusiweb.com/uploads/editor/kx/cg1h8qy86e4x.zip
(silakan ekstrak ke folder C:\template\)
Buka file C:\template\list3.fodt dgn text editor.
Langsung simpan menjadi C:\template\list3-template.fodt dgn encoding UTF-8 utk menghindari kesalahan editing menimpa file asli.
Pertama ubah bagian header / kop dokumen.
Cari string "Release Date", ubah menjadi "variable template" :
Bagian data, cari string "Aaaaa", data pertama dari template yg dibuat.
Ambil 1 baris data, copy-paste ke dokumen text baru, ubah jadi "variable template" :
Kembali ke C:\template\list3-template.fodt, hapus data berulang, ganti dgn "variable template" {DATA}
File template ketiga sudah siap dipergunakan.
http://diskusiweb.com/uploads/editor/g6/1s9j18j3wkc4.zip
dengan letak dan penamaan file :
- C:\template\list3-template.fodt
- C:\template\list3-data.fodt
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 2] Script PHP template dgn loop data : Koding Untuk Contoh Bentuk 3
File contoh selalu disertakan di attachment.
[Langkah 2] Editing template .FODT (lanjutan)
Contoh Bentuk 4 (Tabular, Loop Data Bertingkat)
- Tabel berulang per bagian
- Border tabel lebih kompleks (outline tebal, inline tipis)
File DOCX (list4.docx) & hasil konversi FODT (list4.fodt) :
http://diskusiweb.com/uploads/editor/ee/7gys8i2o6rvc.zip
(silakan ekstrak ke folder C:\template\)
Buka C:\template\list4.fodt dgn text editor.
Simpan menjadi C:\template\list4-template.fodt dgn encoding UTF-8 utk menghindari kesalahan editing menimpa file asli.
Perlu diingat, perulangan pada template ini adalah 1 tabel penuh.
Cari "Aaaaa", dan cari tag "<table:table table:name" sebelum posisi "Aaaaa" yg ditemukan.
Ambil 1 blok tabel, copy-paste ke dokumen text baru. Pisahkan juga perulangan data ke dokumen text baru lainnya. Ganti dengan "variable template" :
Ada perapian tag XML yg ada, pada saat generate FODT pada bagian kotak jumlah ada perbedaan tag-tag XML antara judul baris dan jumlahnya. Dirapikan mengikuti bentuk tag XML judul barisnya.
Untuk data, ambil 1 baris data, ganti dgn "variable template" :
Kembali ke C:\template\list4-template.fodt.
Cari "Release Date", ubah jadi "variable template".
Bagian perulangan tabel juga diganti menjadi {TABLE} :
File template keempat sudah siap dipergunakan.
http://diskusiweb.com/uploads/editor/7k/4ymf3cxp9hwx.zip
dengan letak dan penamaan file :
- C:\template\list4-template.fodt
- C:\template\list4-table.fodt
- C:\template\list4-data.fodt
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 3] Script PHP template dgn loop data di dalam loop : Koding Untuk Contoh Bentuk 4
Contoh Bentuk 5 (Tabular Dengan Data Gambar)
File DOCX (list5.docx) & hasil konversi FODT (list5.fodt) :
http://diskusiweb.com/uploads/editor/mr/u2re1qb2g7vq.zip
(silakan ekstrak ke folder C:\template\)
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 2] Script PHP template dgn loop data : Koding Untuk Contoh Bentuk 5
Contoh Bentuk 6 (List, List Bertingkat, Chart)
File DOCX (naskah2.docx) & hasil konversi FODT (naskah2.fodt) :
http://diskusiweb.com/uploads/editor/9k/igr8yzpl0oba.zip
(silakan ekstrak ke folder C:\template\)
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 2] Script PHP template dgn loop data di dalam loop : Koding Untuk Contoh Bentuk 6
Contoh Bentuk 7 (Sejenis Buku Panduan / Brosur / Leaflet)
- Perulangan per halaman
- Ada tabel
- Header / footer halaman
- Logo header dan footer page numbering
- Jumlah gambar lebih dari 1 per halaman
File DOCX (candi.docx) & hasil konversi FODT (candi.fodt) :
http://diskusiweb.com/uploads/editor/hl/49bq436wmu8e.zip
(silakan ekstrak ke folder C:\template\)
Contoh penggunaannya pada koding PHP :
[SESI 3] [Langkah 2] Script PHP template dgn loop data : Koding Untuk Contoh Bentuk 7
[Langkah 1] Script PHP sederhana
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 1] Membuat template .DOC / .DOCX dan konversi menjadi .FODT
Resource yg sudah dimiliki :
- Temporary folder C:\temp\
- LibreOffice sudah dijalankan sebagai service
- Perintah CLI konversi dokumen via LibreOffice service
"Variable template" yg ada :
{TEXT_PERTAMA}
{TEXT_KEDUA}
{TEXT_KETIGA}
Koding PHP yg dibuat sangat sederhana, dan sangat umum. Sebagian besar hanya memanfaatkan proses penggantian string dgn string lainnya, seperti penggunaan fungsi str_replace().
Berikut adalah koding PHP dgn bentuk yg diusahakan bagian-bagiannya dapat dipakai di contoh-contoh berikutnya.
Kode PHP
Bagian awal hanya pendefinisian varible-variable yg dianggap perlu.
Sengaja dipisah utk penggunaan ulang dikoding yg lain (copy-paste).
Bagian proses hanya sekedar proses penggantian string biasa.
str_replace( $variabel , $isi , $template );
Dilanjutkan dgn proses konversi melalui perintah CLI yg sudah dibahas di awal.
exec( $perintah_cli );
Bagian akhir juga bentuk standar utk proses download dgn penggunaan header().
Cara pemanggilan script sudah disertakan parameter utk membuat dokumen menjadi PDF / DOC / DOCX.
Misal koding disimpan menjadi : php_contoh1.php
http://localhost/php_contoh1.php?doc ... akan menghasilkan file DOC
http://localhost/php_contoh1.php?docx ... akan menghasilkan file DOCX
http://localhost/php_contoh1.php?pdf ... atau hanya ...
http://localhost/php_contoh1.php ... akan menghasilkan file PDF
Dari dokumen template awal
Koding PHP sudah tidak perlu lagi direpotkan utk membentuk layout dokumen satu per satu seperti pada saat menggunakan librari FPDF / TCPDF / HTML2PDF / MPDF atau yg lainnya saat ingin membuat file PDF.
Kembali ke : [SESI 2] [Langkah 1] Membuat template .DOC / .DOCX dan konversi menjadi .FODT
Untuk contoh-contoh selanjutnya, dibutuhkan data dari database.
Sebagai contoh data akan digunakan data dummy "employees".
Database engine yg digunakan : MySQL
Database : employees (silakan diganti jika perlu)
Dummy data bisa di download dan di restore ke MySQL yg dipergunakan :
http://diskusiweb.com/uploads/editor/5q/4ra9lsannl4o.zip
Koding Untuk Contoh Bentuk 1
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 1 (Tabular Sederhana)
Resource yg sudah dimiliki :
C:\template\list1-template.fodt
C:\template\list1-data.fodt
- Temporary folder C:\temp\
- LibreOffice sudah dijalankan sebagai service
- Perintah CLI konversi dokumen via LibreOffice service
- Database employees
"Variable template" yg ada :
{DATA}
list1-data.fodt :
{NAME}
{TITLE}
{DEPARTMENT}
Seperti contoh sebelumnya, beberapa bagian hanya di copy-paste dan diringkas.
Kode PHP
Pada contoh ini sebenarnya tidak diperlukan karena dokumen hanya kecil ukurannya.
Tapi tetap ditulis utk membuat kerangka koding yg tetap.
Di koding sebelumnya tidak ditulis karena proses pengolahan sangat sederhana, hanya contoh string yg tetap, tanpa database sama sekali.
Cara pemanggilan script sama seperti koding sebelumnya, dapat disertakan parameter ?doc / ?docx / ?pdf sesuai dokumen yg dibutuhkan.
Misal koding disimpan menjadi : php_contoh2.php
http://localhost/php_contoh2.php?doc ... akan menghasilkan file DOC
Dari dokumen template awal
Kembali ke : [SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 1 (Tabular Sederhana)
Koding Untuk Contoh Bentuk 2
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 2 (Tabular Berwarna Ganjil Genap)
Resource yg sudah dimiliki :
C:\template\list2-template.fodt
C:\template\list2-data-ganjil.fodt
C:\template\list2-data-genap.fodt
- Temporary folder C:\temp\
- LibreOffice sudah dijalankan sebagai service
- Perintah CLI konversi dokumen via LibreOffice service
- Database employees
"Variable template" yg ada :
{DATA}
list2-data-ganjil.fodt
{NAME}
{TITLE}
{DEPARTMENT}
list2-data-genap.fodt
{NAME}
{TITLE}
{DEPARTMENT}
Seperti contoh sebelumnya, beberapa bagian hanya di copy-paste dan diringkas.
Kode PHP
Dari koding contoh sederhana, contoh 1 dan contoh 2 ini, sebenarnya tidak banyak yg berubah. Kerangka alur kodingnya sama.
Untuk contoh-contoh berikut juga tidak akan bergeser jauh dari kerangka alur yg ada.
Hal itu menunjukan membuat laporan / dokumen PDF / DOC / DOCX atau dokumen office lainnya tidak sulit, selama LibreOffice dapat digunakan di server.
Kerepotan hanya akan ada pada saat memodifikasi file LibreOffice (FODT), mengganti isinya dengan "variable template" yg tepat.
Cara pemanggilan script sama seperti koding sebelumnya, dapat disertakan parameter ?doc / ?docx / ?pdf sesuai dokumen yg dibutuhkan.
Dari dokumen template awal
Kembali ke : [SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 2 (Tabular Berwarna Ganjil Genap)
Koding Untuk Contoh Bentuk 3
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 3 (Tabular w/ Header, Footer, Page Numbering, Table Header)
Resource yg sudah dimiliki :
C:\template\list3-template.fodt
C:\template\list3-data.fodt
- Temporary folder C:\temp\
- LibreOffice sudah dijalankan sebagai service
- Perintah CLI konversi dokumen via LibreOffice service
- Database employees
"Variable template" yg ada :
{DATE}
{TO}
{FROM}
{DATA}
list3-data.fodt
{NO}
{EMP_NO}
{EMP_LASTNAME}
{EMP_FIRSTNAME}
{EMP_TITLE}
{EMP_DEPARTMENT}
Seperti contoh sebelumnya, beberapa bagian hanya di copy-paste dan diringkas.
Kode PHP
Koding sudah tidak direpotkan lagi utk mengurusi pembuatan header, logo header, footer, page numbering, header table yg berulang, border, margin, ukuran halaman, orientasi halaman, dan lain sebagainya yg berhubungan dgn layout dokumen.
Semuanya sudah dibuat saat membuat dokumen template awal menggunakan Microsoft Office yg tentunya jadi sangat mudah.
Hasil akhir output dari koding sama persis sesuai dengan dokumen template yg dibuat pada saat awal.
Cara pemanggilan script sama seperti koding sebelumnya, dapat disertakan parameter ?doc / ?docx / ?pdf sesuai dokumen yg dibutuhkan.
Dari dokumen template awal
Kembali ke : [SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 3 (Tabular w/ Header, Footer, Page Numbering, Table Header)
Koding Untuk Contoh Bentuk 5
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 5 (Tabular Dengan Data Gambar)
Kembali ke : [SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 5 (Tabular Dengan Data Gambar)
Koding Untuk Contoh Bentuk 7
Untuk contoh ini, dibutuhkan data dari database. Silakan download backup sql database di attachment.
File backup sql terpaksa dipisah menjadi 2 karena batasan ukuran file yg bisa di upload.
candi1.sql.zip
http://diskusiweb.com/uploads/editor/8f/rrg3t4b8b8n1.zip
Download backup sql ini, ekstrak, jalankan.
Otomatis akan membuat database "candi" dan table "candi".
Sebenarnya dgn backup database ini sdh cukup utk uji coba contoh koding, tapi hanya berisi 3 data.
candi2.sql.zip
http://diskusiweb.com/uploads/editor/pe/h97wviqfz5we.zip
Tambahan 2 data lagi untuk database "candi", table "candi" (candi1.sql harus dijalankan terlebih dulu).
Total data utk uji coba menjadi 5 data.
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 7 (Sejenis Buku Panduan / Brosur / Leaflet)
Seperti contoh sebelumnya, beberapa bagian hanya di copy-paste dan diringkas.
Kode PHP
Seperti contoh 5, contoh ini juga menggunakan gambar.
Data gambar sdh ada di database dgn bentuk BLOB.
Jika menggunakan model gambar dari file fisik, gunakan file_get_contents($lokasi_file_gambar).
Gambar yg ditampilkan harus di base64_encode($data_gambar).
Tipe gambar bebas.
Misal pada saat membuat template menggunakan tipe PNG, tapi saat mengisi data menggunakan file / data JPG / JPEG atau yg lainnya.
Ukuran gambar mengikuti ukuran yg didefinisikan saat membuat template.
Jika gambar yg diisikan lebih besar / lebar / pendek / kecil, akan mengalami "stretching paksa".
Agar proporsional, width / height di tag XML bisa diubah dgn perhitungan, artinya juga diubah menjadi "variable template", atau gambar yg akan dipergunakan di-resize / di-crop di koding php nya.
Terdapat proses "pembersihan string" utk text yg panjang.
- mengubah karakter & menjadi &
- mengubah baris baru / new line menjadi <text:line-break/>
Cara pemanggilan script sama seperti koding sebelumnya, dapat disertakan parameter ?doc / ?docx / ?pdf sesuai dokumen yg dibutuhkan.
Dari dokumen template awal
Kembali ke : [SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 7 (Sejenis Buku Panduan / Brosur / Leaflet)
Koding Untuk Contoh Bentuk 4
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 4 (Tabular, Loop Data Bertingkat)
Resource yg sudah dimiliki :
C:\template\list4-template.fodt
C:\template\list4-table.fodt
C:\template\list4-data.fodt
- Temporary folder C:\temp\
- LibreOffice sudah dijalankan sebagai service
- Perintah CLI konversi dokumen via LibreOffice service
- Database employees
"Variable template" yg ada :
{DATE}
{TO}
{FROM}
{TABLE}
list4-table.fodt
{DEPARTMENT}
{DATA}
{NUM_MALE}
{NUM_FEMALE}
{NUM_ASSISTANT}
{NUM_REGULAR}
{NUM_SENIOR}
{NUM_LEADER}
list4-data.fodt
{NO}
{EMP_NO}
{EMP_LASTNAME}
{EMP_FIRSTNAME}
{EMP_TITLE}
Seperti contoh sebelumnya, beberapa bagian hanya di copy-paste dan diringkas.
Kode PHP
Bentuk yg khusus pada template ini adalah adanya perulangan 2 tingkat.
- Data berulang di dalam table.
- Table berulang di dalam dokumen.
Tapi pada kodingnya, jika sudah terbiasa menghadapi masalah seperti ini pun yg dibuat tetap 1 loop dan dengan cukup 1 query.
Hal ini tentu akan menjadi lebih ringan untuk alur kodingnya sendiri.
Cara pemanggilan script sama seperti koding sebelumnya, dapat disertakan parameter ?doc / ?docx / ?pdf sesuai dokumen yg dibutuhkan.
Ada "cacat" layout table pada border jika di generate menjadi DOCX.
Belum dilihat lebih jauh penyebabnya.
Dari dokumen template awal
Kembali ke : [SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 4 (Tabular, Loop Data Bertingkat)
Koding Untuk Contoh Bentuk 6
Dengan menggunakan template yg sudah dibuat pada bagian :
[SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 6 (List, List Bertingkat, Chart)
Kembali ke : [SESI 2] [Langkah 2] Editing template .FODT : Contoh Bentuk 6 (List, List Bertingkat, Chart)
Ringkasan Langkah
- Download dan install LibreOffice
- Download dan copy unoconv
- Di mesin produksi, jalankan LibreOffice sebagai service
[Pekerjaan Rutin]
- Buat template dgn Microsoft Office (Word / Excel / PowerPoint), bentuk bebas
- Konversi menjadi .fodt / .fods / .fodp dgn LibreOffice
- Ubah data dummy menjadi "variable template"
- Koding mengisi data, merubah "variable template" dgn data yg benar, data gambar menggunakan base64 encoding
- Simpan menjadi file .fodt / .fods / .fodp
- Jalankan perintah konversi lewat CLI dari koding
Referensi unoconv -f parameter
The following list of document formats are currently available:
bib - BibTeX [.bib]
doc - Microsoft Word 97/2000/XP [.doc]
doc6 - Microsoft Word 6.0 [.doc]
doc95 - Microsoft Word 95 [.doc]
docbook - DocBook [.xml]
docx - Microsoft Office Open XML [.docx]
docx7 - Microsoft Office Open XML [.docx]
fodt - OpenDocument Text (Flat XML) [.fodt]
html - HTML Document (OpenOffice.org Writer) [.html]
latex - LaTeX 2e [.ltx]
mediawiki - MediaWiki [.txt]
odt - ODF Text Document [.odt]
ooxml - Microsoft Office Open XML [.xml]
ott - Open Document Text [.ott]
pdb - AportisDoc (Palm) [.pdb]
pdf - Portable Document Format [.pdf]
psw - Pocket Word [.psw]
rtf - Rich Text Format [.rtf]
sdw - StarWriter 5.0 [.sdw]
sdw4 - StarWriter 4.0 [.sdw]
sdw3 - StarWriter 3.0 [.sdw]
stw - Open Office.org 1.0 Text Document Template [.stw]
sxw - Open Office.org 1.0 Text Document [.sxw]
text - Text Encoded [.txt]
txt - Text [.txt]
uot - Unified Office Format text [.uot]
vor - StarWriter 5.0 Template [.vor]
vor4 - StarWriter 4.0 Template [.vor]
vor3 - StarWriter 3.0 Template [.vor]
wps - Microsoft Works [.wps]
xhtml - XHTML Document [.html]
The following list of graphics formats are currently available:
bmp - Windows Bitmap [.bmp]
emf - Enhanced Metafile [.emf]
eps - Encapsulated PostScript [.eps]
fodg - OpenDocument Drawing (Flat XML) [.fodg]
gif - Graphics Interchange Format [.gif]
html - HTML Document (OpenOffice.org Draw) [.html]
jpg - Joint Photographic Experts Group [.jpg]
met - OS/2 Metafile [.met]
odd - OpenDocument Drawing [.odd]
otg - OpenDocument Drawing Template [.otg]
pbm - Portable Bitmap [.pbm]
pct - Mac Pict [.pct]
pdf - Portable Document Format [.pdf]
pgm - Portable Graymap [.pgm]
png - Portable Network Graphic [.png]
ppm - Portable Pixelmap [.ppm]
ras - Sun Raster Image [.ras]
std - OpenOffice.org 1.0 Drawing Template [.std]
svg - Scalable Vector Graphics [.svg]
svm - StarView Metafile [.svm]
swf - Macromedia Flash (SWF) [.swf]
sxd - OpenOffice.org 1.0 Drawing [.sxd]
sxd3 - StarDraw 3.0 [.sxd]
sxd5 - StarDraw 5.0 [.sxd]
sxw - StarOffice XML (Draw) [.sxw]
tiff - Tagged Image File Format [.tiff]
vor - StarDraw 5.0 Template [.vor]
vor3 - StarDraw 3.0 Template [.vor]
wmf - Windows Metafile [.wmf]
xhtml - XHTML [.xhtml]
xpm - X PixMap [.xpm]
The following list of presentation formats are currently available:
bmp - Windows Bitmap [.bmp]
emf - Enhanced Metafile [.emf]
eps - Encapsulated PostScript [.eps]
fodp - OpenDocument Presentation (Flat XML) [.fodp]
gif - Graphics Interchange Format [.gif]
html - HTML Document (OpenOffice.org Impress) [.html]
jpg - Joint Photographic Experts Group [.jpg]
met - OS/2 Metafile [.met]
odg - ODF Drawing (Impress) [.odg]
odp - ODF Presentation [.odp]
otp - ODF Presentation Template [.otp]
pbm - Portable Bitmap [.pbm]
pct - Mac Pict [.pct]
pdf - Portable Document Format [.pdf]
pgm - Portable Graymap [.pgm]
png - Portable Network Graphic [.png]
potm - Microsoft PowerPoint 2007/2010 XML Template [.potm]
pot - Microsoft PowerPoint 97/2000/XP Template [.pot]
ppm - Portable Pixelmap [.ppm]
pptx - Microsoft PowerPoint 2007/2010 XML [.pptx]
pps - Microsoft PowerPoint 97/2000/XP (Autoplay) [.pps]
ppt - Microsoft PowerPoint 97/2000/XP [.ppt]
pwp - PlaceWare [.pwp]
ras - Sun Raster Image [.ras]
sda - StarDraw 5.0 (OpenOffice.org Impress) [.sda]
sdd - StarImpress 5.0 [.sdd]
sdd3 - StarDraw 3.0 (OpenOffice.org Impress) [.sdd]
sdd4 - StarImpress 4.0 [.sdd]
sxd - OpenOffice.org 1.0 Drawing (OpenOffice.org Impress) [.sxd]
sti - OpenOffice.org 1.0 Presentation Template [.sti]
svg - Scalable Vector Graphics [.svg]
svm - StarView Metafile [.svm]
swf - Macromedia Flash (SWF) [.swf]
sxi - OpenOffice.org 1.0 Presentation [.sxi]
tiff - Tagged Image File Format [.tiff]
uop - Unified Office Format presentation [.uop]
vor - StarImpress 5.0 Template [.vor]
vor3 - StarDraw 3.0 Template (OpenOffice.org Impress) [.vor]
vor4 - StarImpress 4.0 Template [.vor]
vor5 - StarDraw 5.0 Template (OpenOffice.org Impress) [.vor]
wmf - Windows Metafile [.wmf]
xhtml - XHTML [.xml]
xpm - X PixMap [.xpm]
The following list of spreadsheet formats are currently available:
csv - Text CSV [.csv]
dbf - dBASE [.dbf]
dif - Data Interchange Format [.dif]
fods - OpenDocument Spreadsheet (Flat XML) [.fods]
html - HTML Document (OpenOffice.org Calc) [.html]
ods - ODF Spreadsheet [.ods]
ooxml - Microsoft Excel 2003 XML [.xml]
ots - ODF Spreadsheet Template [.ots]
pdf - Portable Document Format [.pdf]
pxl - Pocket Excel [.pxl]
sdc - StarCalc 5.0 [.sdc]
sdc4 - StarCalc 4.0 [.sdc]
sdc3 - StarCalc 3.0 [.sdc]
slk - SYLK [.slk]
stc - OpenOffice.org 1.0 Spreadsheet Template [.stc]
sxc - OpenOffice.org 1.0 Spreadsheet [.sxc]
uos - Unified Office Format spreadsheet [.uos]
vor3 - StarCalc 3.0 Template [.vor]
vor4 - StarCalc 4.0 Template [.vor]
vor - StarCalc 5.0 Template [.vor]
xhtml - XHTML [.xhtml]
xls - Microsoft Excel 97/2000/XP [.xls]
xls5 - Microsoft Excel 5.0 [.xls]
xls95 - Microsoft Excel 95 [.xls]
xlt - Microsoft Excel 97/2000/XP Template [.xlt]
xlt5 - Microsoft Excel 5.0 Template [.xlt]
xlt95 - Microsoft Excel 95 Template [.xlt]
xlsx - Microsoft Excel 2007/2010 XML [.xlsx]
Filtering konten yg perlu dilakukan
- DOC / DOCX bisa dipaksa membuat halaman baru dgn <text:soft-page-break/>
- Karakter & diubah jadi &
Kesalahan yg pernah ditemukan
- Border slash-dot dikenali di PDF & DOC, tapi tidak dikenali di DOCX
- Konten table 2 kolom (atau lebih), data berupa gambar kadang lompat ke halaman berikut terpengaruh isi dari kolom yg lain
- Konten PowerPoint basis nya frame, 1 frame per halaman, tidak bisa otomatis membuat slide baru jika isi melebihi slide, jadi mesti pintar mengatur panjang konten.
Berbeda dgn konten DOC / DOCX / XLS / XLSX yg bisa dibuat panjang dan otomatis ganti halaman
Dari thread SEPUTAR MEMBUAT LAPORAN DENGAN PHP
http://diskusiweb.com/discussion/comment/256510/#Comment_256510
http://diskusiweb.com/discussion/comment/256511/#Comment_256511
Penggunaan LibreOffice utk membuat dokumen / laporan
- Super fleksible, pengembangan dapat digali lebih jauh
- Dapat memisahkan tugas pembuatan template dan koding script
- Hasil bagus, kalau pun layout ada melesetnya sangat minim
- Ringan di php nya, lama proses tergantung ukuran dokumen
- Koding php sederhana, hanya proses isi data tanpa perlu mengurusi format dokumen lagi
- Jenis format dokumen yg bisa dihasilkan beragam hanya dgn 1 (satu) template yg sama
- Jika terjadi kesalahan hasil, biasanya koding tidak perlu diubah, hanya template yg perlu diubah selama masih menggunakan "variable template" yg sama
- Dapat dipakai utk banyak bahasa pemrograman
Kerugian :
- Hanya dapat dipakai di server sendiri, atau minimal server lokal di LAN
- Harus install aplikasi suite yg memakan space lebih dari 300MB
Perbandingan pembuatan dokumen / laporan dengan metode lain
- PDF : FPDF, TCPDF, HTML2PDF, MPDF dan sejenisnya
- Word : phpdocx (berbayar)
- Excel : phpexcel
Keuntungan :
- Dapat digunakan di shared hosting dan server sendiri
- Dapat utk membuat dokumen dengan format profesional
Kerugian :
- Tiap format dokumen / laporan yg ingin dibuat membutuhkan librari yg berbeda, dengan bentuk koding yg berbeda pula
- TCPDF, MPDF, FPDF (meskipun ditambah penggunaan librari HTML2PDF), lebih repot mengatur layout, karena pembuatan layout masih bercampur dengan koding isi data
- phpdocx, phpexcel, hasil output masih banyak yg meleset dari format yg diinginkan
- Beban konversi menjadi lebih berat di sisi php, menguras resource, terutama cpu dan memori, perlu diingat php itu hanya interpreter
- Sulit membuat template yg bisa diserahkan pekerjaannya ke operator
- Untuk membuat 1 laporan, programmer harus memikirkan bentuk laporan mulai dari membentuk layout dan format melalui baris-baris koding
- Pembuatan 1 script hanya utk laporan yg dimaksud, jika membuat laporan PDF hasilnya hanya PDF, untuk membuat format lain harus membuat bagian koding yg berbeda
Alternatif lain yg dapat digunakan di server shared hosting :
- Berisi HTML
Keuntungan :
- Sangat sederhana, tidak membutuh tambahan librari / aplikasi lain
- Dapat digunakan di shared hosting dan server sendiri
- Hanya HTML, seperti membuat halaman web biasa
- Ringan, tapi tetap bisa menjadi berat jika datanya banyak
Kerugian :
- Sulit membuat halaman dokumen laporan yg profesional
- Saat dibuka dgn Word / Excel editing tetap konten HTML, bukan format asli dokumen Word / Excel
- Sulit membuat multi page di Word dan multi sheet di Excel
- Sulit membuat header / footer / page numbering di tiap halaman
- Pembuatan layout laporan tetap bercampur dgn koding
Jika harus membuat dokumen / laporan yg berukuran besar / banyak data, menggunakan LibreOffice juga memakan waktu lama.
Tapi masih lebih baik dibanding librari php berupa script, karena LibreOffice itu aplikasi desktop, bukan script utk interpreter.
Jika harus menghasilkan dokumen besar, baik librari script php atau LibreOffice harus mengubah seting time limit eksekusi php menjadi 0 (tanpa batas waktu)
Hasil keluaran lebih cepat dihasilkan dari LibreOffice.
Penggunaan librari script php bisa menjadi hang jika dokumen terlalu besar.
Pilihan menggunakan librari script php / konten HTML terpaksa dilakukan jika menggunakan shared hosting.
Itu pun dengan risiko akun akan di suspend oleh admin server karena menguras resource jika harus membuat dokumen besar.
Pilihan menggunakan konten HTML adalah cara yg paling ringan bebannya.
Kecuali ada alternatif aplikasi desktop lain yg lebih baik.
Dengan membuat 1 (satu) template, bisa digunakan untuk lebih dari satu format dokumen / laporan, dan dapat digunakan utk bahasa pemrograman yg berbeda-beda
File contoh selalu disertakan di attachment.
[CONTOH] Contoh template, database dan koding PHP
[1] Laporan Excel (Tabular Sederhana)
Tiruan laporan contoh 1, hanya diubah menggunakan Excel dari yg sebelumnya menggunakan Word.
Template
http://diskusiweb.com/uploads/editor/uf/fn5sq1hiobqv.zip
Dibuat menggunakan Microsoft Excel, list1.xlsx.
Jangan lupa, jika hendak membuat laporan PDF menggunakan template yg sama, lakukan "Set Print Area", atur "Page Width" dan "Page Orientation".
Edit list1.fods dgn Text Editor.
Seperti langkah contoh sebelumnya, cari terlebih dahulu perulangan data.
Ambil template baris data, ubah jadi "variable template", simpan jadi list1-data.fods.
Simpan file template menjadi list1-template.fods
http://diskusiweb.com/uploads/editor/6f/r0xnbvs8ke1g.zip
Kode PHP
Koding tidak berubah jauh dari contoh koding yg lain.
Fungsi script php hanya mengisi data dan menjalankan konversi.
Cara pemanggilan script sama seperti koding sebelumnya, hanya saja ini utk XLS / XLSX, dapat disertakan parameter ?xls / ?xlsx / ?pdf sesuai dokumen yg dibutuhkan.
Misal koding disimpan menjadi : php_excel1.php
http://localhost/php_excel1.php?xlsx ... akan menghasilkan file XLSX
Hasil
Catatan :
Utk dokumen PDF hasil tidak sempurna (terpotong, beda halaman), karena pada saat pembuatan template awal menggunakan Microsoft Excel tidak mengatur "Set Print Area", "Page Width" dan "Page Orientation".
http://diskusiweb.com/categories/tanya-jawab