Cari Artikel Lain

Minggu, 26 April 2009

Mencetak Dengan Escape Code

Bagi para jawara programer, mungkin artikel ini sudah terasa basi atau bahkan mungkin sudah diluar kepala karena sudah merupakan santapan sehari-hari. Tapi tidak ada salahnya saya menulis artikel ini, siapa tau ada rekan-rekan pemula yang belum mengetahui.
Escape Code. Dahulu kala, ketika saya baru mengenal komputer dengan sistem operasi DOS yang tampilannya hanya hitam putih, escape code dapat digabungkan dengan perintah prompt untuk meletakkan dos promt pada titik tertentu dilayar, dan jika ditambahkan device Ansi.sys, dos prompt dapat juga diberi warna bahkan efek kelap-kelip.
Ternyata, escape code juga dipakai untuk printer dot matrik untuk mengatur jenis font maupun jarak antar baris sampai panjang kertas yang dipakai.
Memang fungsi tersebut setalah era Windows maupun Linux sudah tidak begitu penting lagi dalam bidang pemrogaman komputer, karena sudah dapat dilakukan dengan sangat mudah bahkan akan memberi efek yang sama pada semua jenis printer (dengan baris perintah yang sama) dengan bantuan Driver pada sistem operasi sedangkan dengan menggunakan tehnik escape code, harus disesuaikan dengan printer yang akan dipakai dan data yang ditujukan ke printer dilakukan dengan open port, sehingga jika port printer durubah printer tidak akan dapat mencetak.
Akan tetapi, dengan segala kekurangan yang ada dalam menggunakan tehnik percetakan menggunakan open port, ada hal-hal yang tidak dapat diganti dengan menggunakan fasilitas driver pada windows. Contoh kecilnya adalah penggunaan printer dalam program POS kasir dimana kertas yang tercetak harus berhenti tepat saat struk selesai dicetak. Dan juga, dengan menggunakan tehnik open port waktu cetak yang diperlukan lebih cepat dengan hasil cukup jelas.
Berikut beberapa escape code yang digunakan pada printer Epson Lx-300.
Chr(18) Merubah font printer jadi Draft
Chr(13) Akan menimbulkan efek percetakan pada bari yang sama.
chr(14) Akan menimbulkan efek tebal
chr(15) Merubah Font Printer menjadi draft Condensed
Chr(27)+Chr(51)+Chr(xx) Untuk mengatur spasi atas dan bawah dari cetakan. Jarak tergantung dari nilai(xx)
Chr(27)+Chr(50) Akan mengatur printer kembali ke spasi normal.
Chr(27)+Chr(87)+Chr(48) Akan mematikan fungsi huruf lebar.
Chr(27)+Chr(87)+Chr(49) Akan mengaktifkan printer untuk mencetak huruf lebih lebar.
Chr(27)+Chr(120)+Chr(48) Akan mengatur printer menggunakan huruf Roman.
Chr(27)+Chr(120)+Chr(49) Akan mematikan printer menggunakan huruf Roman dan kembali ke Draft.
Chr(27)+Chr(97) Akan mengatur printer ke margin kanan.
Chr(27)+Chr(107)+Chr(48) Akan mematikan fungsi NLQ.
Chr(27)+Chr(107)+Chr(49) Akan mengaktifkan fungsi NLQ.

Demikian beberapa escape code yang saya kumpulkan, semoga bermanfaat bagi rekan-rekan, jika rekan-rekan menemukan code yang lainnya atau untuk printer yang lainnya, silahkan ditambahkan dengan memberikan kepada saya. Semoa Bermanfaat.

Andrie Baskara
Cibuluh 20-02-2009
Phone : 08129634901

5 komentar:

  1. oke banget artikelnya,
    mo tanya neeh
    saya pake clipper
    ..
    saya mo gede in huruf di printer gimana ya caranya ?

    mis: 'hello' --> 'hello' sebesar screen atau selebar kertas A4.
    apakah bisa dgn Chr(27)+Chr(87)+Chr(49) atau yang lain,
    mohon bantuannya

    Thx,
    Anggoro Tri N.A ( anggorotri@yahoo.com)

    BalasHapus
  2. Huruf lebat bukan berarti lebih lebar 3 kali atau 4 kali.

    Pada fungsi Chr(27)+Chr(87)+Chr(48) pada printer LX 300 hanya bisa sampai 120 kolom, tetapi jika menggunakan Chr(27)+Chr(87)+Chr(49) pada awal cetak, maka kolomnya bisa sampai 130

    Jika hanya ingin memperbesar huruf bisa pakai chr(15) + chr(14) atau chr(18) + chr(14) dicoba saja mana yang paling pas.

    Perintah chr(27)+chr(67)+chr(33) atau chr(27)+chr(67)+chr(66) menentukan seberapa jauh printer eject paper saat diberi perintah chr(12).

    Contohnya

    chr(27)+chr(67)+chr(33)
    Test printer
    chr(12)

    maka printer akan eject sampai baris ke 33 walapun hanya mencetak 1 baris saja, atau beberapa baris, Jika baris test printer melebihi 33, maka akan eject pada baris ke33 selanjutnya. Begitu juga pada perintah yang chr(66) tinggal disesuaikan saja sama kertasnya, jika kertasnya hanya cukup untuk 22 baris tinggal diganti dengan chr(22)

    Untuk pemrograman di Clipper saya lupa caranya bagaimana, tapi pastinya gak beda jauh, karena kode diatas saya juga dapetnya dari source code program clipper.

    BalasHapus
  3. Anggoro (anggorotri@yahoo.com)30 Januari 2010 pukul 18.19

    Terima Kasih, penjelasannya,

    Saya akan Coba

    Wassalam
    anggorotri@yahoo.com

    BalasHapus
  4. Berhasil kang. Salut. :) Keep Posting bro

    BalasHapus
  5. Om saya mau nanya, kalo saya punya kertas ukuran 2.67 inch. Saya kesulitan menentukan posisi awal untuk helaman selanjutnya. Dimana ketika saya coba masukkan 2 inch masih ada sisa pada halaman pertama, pas saya masukkan 3 inch lebih ke halaman kedua (atau selanjutnya).
    Ada cara atau idekah ??

    BalasHapus