Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

08 July 2008

DOS Print To USB Printer

Hello all, this is my first post in English. Usually I wrote my blog in Indonesian I decide write it in English hope that can read by any people who need this information not only Indonesian people.
Yes so many tools like Printfil or DOS2USB or DOSPRN that can be use for redirect legacy DOS application can print to new fashion printer (laserjet, inkjet)
Even those application is works great but there a cost to make it work right without limitation. I have try using crack version of it not work too, so i decide to made by my self.
First version will very limited and less feature. My release plan just for my use only but how to make it work ?
  • install redmon application
  • create virtual printer with driver generic text using port RTP1: and share with name PRINTER
  • from dos run net use lpt1 \\127.0.0.1\PRINTER /persistent:yes
  • configure RPT port to launch my application
there is 2 possibility architecture for my application
first I will create 2 application first is resident in task bar and second execute in RPT command, when second application is receive data stream from redmon using IPC it will send to first application.
second architecture is only one application which call by redmon when stream data is received my application will show a dialog to select printer and number of copies

Sorry for my bad explanation, this method is still in design perhaps i will work on it in next few day, is there any advice or question can reach me at YIM at eddy.setyawan account

16 June 2008

Reporting Tools

Lama tidak menyentuh dunia delphi dan C membuat aku meninggalkan reporting tools yang dulu aku anggap reporting terbaik di dunia OSS yaitu Reportman!!,
Belum lama ini aku cukup disibukkan dengan rencana pembuatan report di lang python + gtk sehingga membuat saya menemukan beberapa library seperti reportlab dan pypsg dan ternyata cukup menyita waktu buat saya .... tidak tahu kenapa sore ini saya berinisiatif membuka lagi "luka lama" cieeeee link lama maksud nya .... reportman, ternyata tidak ada penambahan yang signifikan keculai..... sekarang ada binding ke python!!! oh seeep akhirnya saya mengurungkan untuk membuat engine report untuk sementara ini akan saya gunakan reportman jika memungkinkan ...

- Repot - Report - Repot - Report -

Kelanjutan Report yang bikin repot
Akhirnya kembali ke awal pakai Reportlab!!
memang lambat dikit tapi worth... pakai Postscript bahasa harus belajar lagi.. layout dan pilihan font juga terbatas..
Dengan reportlab bisa mengenerate Barcode, bisa grafik, image, TTF font, masih banyak lagi dan pengoperasiannya lebih mudah... tinggal satu masalah lagi reference nya sedikit. Setelah saya baca di source code ya dokumentasi ditulis disitu, akan saya coba generate pakai epydoc semoga bisa

15 June 2008

Extension Win32 di Python bawaan Open Office 2.4

Bagi para pengguna Open Office.org (OO.o) di environment Windows dan menginstall tambahan pyuno-bridge secara otomatis installer OO.o akan menginstall Python versi 2.3.4 yang akan terinstall di /program/python-core-2.3.4.
Bagi yang ingin memanfaat kan koneksi dari ADO di python terlebih dahulu saya mendownload extension python win32
Waktu menjalankan installer nya saya mendapatkan pesan error disebutkan bahwa tidak terdapat python di system saya, jelas saja karena Python yang saya pakai khan bawaan OO.o jadi tidak akan menset registry nya windows. Adapun script yang dapat menset registry lokasi instalasi python dapat di dapat disini. Letakkan script tersebut di dir program di lokasi instalasi OO.o kemudian panggil python.bat . Ok saya sudah selesai menset registry nya windows, kalau kurang yakin berhasil atau tidak coba saya cek di regedit (HKEY_LOCAL_MACHINE\SOFTWARE\Python\Pythoncore\2.3\) kalau sudah terdapat berarti sudah terset di registry
Sekarang saya bisa menginstall win32 dengan mulus :)
But wait!! ternyata tidak semulus yang saya duga... ada beberapa tambahan PATH yang perlu kita set.
Tambahkan Path ini di environment PATH di System Windows.
  • C:\Program Files\OpenOffice.org 2.4\program\python-core-2.3.4\lib\site-packages\pywin32_system32
  • C:\Program Files\OpenOffice.org 2.4\program
Untuk menambah bisa klik kanan di My Computer, pilih Properties kemudian klik tab Advanced klik di tombol Environtment Variables di Group System Variables di bagian Path tambahkan kedua path diatas dengan dipisah karakter semi colon (;)
ok sekarang saat nya mencoba...
masuk CMD coba panggil python
>>import pywin
>>
kalau tidak keluar error apa2 berarti sudah sukses ;)

11 June 2008

Report yang ga bikin repot

Saya mengalami beberapa kendala masalah pembuatan report dengan Python
ada 2 alternative yang saya temukan pertama dengan menggunakan engine reportlab yang outputnya format pdf dan pypsg dengan output file postscript
Secara API reportlab lebih memiliki kemudahan selain itu juga dokumentasi tutorial juga tersedia, sedangkan pypsg membutuhkan skill lebih terutama penggunaan languange postscript sendiri.
Pypsg memiliki dokumentasi referensi lebih lengkap ketimbang reportlab tetapi sedikit sekali tutorial yang tersedia
Setelah saya test prosesing postscript jauh lebih cepat ketimbang pdf, karena kebutuhan saya nantinya adalah melempar langsung ke printer untuk test saya menggunakan 2 tools
1. PDF menggunakan SumatraPDF dengan option (C:\>sumatrapdf -exit-on-print -print-to "" test.pdf) akan menredirest langsung ke printer
2. PS menggungan gsprint dari ghostview
hasil kedua test diatas menunjukan kecepatan PS proses nya lebih cepat ketimbang PDF jadi dari sini saya akan memilih PS sebagai hasil report saya

10 June 2008

Python Web Browser menemukan titik terang

Akhirnya menemukan titik terang untuk mengembed web browser
kali ini berkat info dari http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305273 sehingga aku menelusuri isi dari code tersebut mengetahui bahwa ctypes di python telah melepas module untuk wrapper COM yang namanya diganti dengan module comtypes.
Kemungkinan besar aku akan buat terpisah antara binding di Windows dan di Linux
Tapi masih ada satu kebingungan project ini enaknya dikasih nama apa ya ..... karena berhubungan dengan python harus ada prefix "py", tujuannya untuk embed di gtk berarti harus ada "gtk" karena fungsinya untuk widget webbrowsing harus ada tambahan apa ya ... mmm ide sich webwidget ... atau pygtk-webwidget aja ya ... ya sementara namanya ini dulu
Doakan supaya berhasil ya .... :p

09 June 2008

Aplikasi PyGTK embed Web Browser

Saya saat ini kebingungan ingin membuat aplikasi dengan PyGTK yang meng-embedkan Web Browser didalamnya.
Ada beberapa ide sebenarnya, tapi gara2 saya mentargetkan untuk multi platform jadi tersandung - sandung :)
  • Ide pertama menggunakan Engine Webkit yang sudah menyediakan binding ke python+gtk tetapi saat ini masih tersedia versi Linux saja, di windows belum bisa menemukan versi binary nya. Kemungkinan untuk di build sendiri baru bisa
  • Ide kedua dengan menggunakan pymozembed sama dengan kasusnya webkit tidak ada versi binarynya di windows sehingga akan memerlukan rebuild dulu yang belum tentu smooth
  • Ide terakhir kemungkinan ini yang akan saya pakai yaitu membuat satu wrapper katakan pygtkbrowser dimana wrapper ini akan berupa class turunan dari Gtk.Container yang didalamnya terdapat browser, wrapper ini akan mendeteksi OS yang sedang digunakan kalau OS Linux akan memanggil mozembed sedangkan kalau Win akan meload component IE dengan bantuan module win32
Ide terahkhir tersebut masih ada kendala dimana saya belum bisa meload IE untuk di embed didalam gtk.container

17 April 2008

Barcode dengan Python

Ini postingan blog saya yang pertama.... Inisiatif ini muncul gara2 waktu saya mencari2 informasi penggunaan barcode untuk aplikasi DOS(Clipper) yang sedang diimplementasikan di toko saya.
Dengan pertimbangan penggunaan printer barcode yang mahal biaya per lembar nya, ada ide untuk membuat nya dengan printer inkjet atau laserjet yang di print di kertas stiker. Karena menggunakan DOS tidak mungkin untuk print ke inkjet dan generate barcode rumit juga ya klo di DOS :). Awalnya kita sudah berusaha cari2 software bantuan shareware tapi.... ujung2 nya ntar harus ngecrack dan tidak bisa digabungkan dengan aplikasi yang sedang diimplementasi akhirnya saya kepikiran untuk membikin sendiri generatornya.
Dengan adanya background programming saya berusaha mencari2 library untuk generate barcode, karena main lang saya C dan Python saya berusaha cari yang termudah dulu pake Python. Yang saya tahu di Python report generator terbaik saat ini cuman reportlab tapi saya tidak yakin ada tidaknya fitur untuk barcode, setelah baca2 referensi nya yang ada di website karena kurang lengkap terpaksa baca dokumentasi yang di sertakan di code nya.

Ide untuk pengintegrasian seperti ini, dari DOS saya minta programmernya untuk mengenerate text file dari informasi pembelian ataupun surat jalan dengan format kodebarang|namabarang saya gunakan pemisah | (pipe) karena karakter ini tidak digunakan di penamaan nama barang saya
setelah mengenerate text file tersebut saya minta dia untuk memanggil aplikasi python yang saya buat dengan mepassingkan nama textfile sebelumnya, kemudian program python ini akan mengenerate ke lokasi yang sudah ditentukan sebelumnya dalam kasus ini saya hardcode ke c:\pdf (karena saat ini code clipper masih dalam proses porting ke xharbour jadi masih disimpan dengan lokasi driver )

Berikut ini code python yang saya buat:
Persiapan :
install reportlab kalau di Fedora 8 install dengan cara seperti dibawah ini
sh> yum install reportlab

untuk versi windows download dulu Python nya sebaiknya cari versi 2.5
Download dll nya reportlab dari web nya dan download source reportlab
download module PIL

berikut ini kode programnya bcgen.py