Showing posts with label Belajar. Show all posts
Showing posts with label Belajar. Show all posts

Saturday, June 30, 2012

Mencetak Dokumen ke Printer Langsung dengan PHP

  1. Download file php_printer-xxx-ts-vc6.zip (file php_printer-xxx yang sesuai dengan versi PHP anda)
  2. Ekstrak file php_printer ke folder C:\xampp\php\ext
  3. Buka file php.ini di C:\xampp\php\
  4. Tambahkan baris
    extension=php_printer.dll
  5. Jalankan apache atau load ulang PHP anda
    Catatan :
    - http://downloads.php.net/pierre/ dan cari file php_printer-xxx yang sesuai dengan versi PHP anda.
    - cek phpinfo()di phpmyadmin, cari "printer"
    - Sintak lengkap bisa dilihat di http://php.net/manual/en/ref.printer.php
Contoh Script :
$tanggal = date("d-m-Y");
$jam = date("H:i:s");
$var_magin_left = 10;
$printer = printer_open('Canon MP250 series Printer');
printer_set_option($printer, PRINTER_MODE, "RAW"); // mode disobek ( kertas tidak menggulung )
printer_start_doc($printer);
printer_start_page($printer);
$font = printer_create_font("Arial", 18, 17, PRINTER_FW_NORMAL, false, false, false, 0);
printer_select_font($printer, $font);
printer_draw_text($printer, ".: TOKO XYZ :.",130,0);
printer_draw_text($printer, date("Y/m/d H:i:s"),255, 40);

printer_draw_text($printer, "Kasir", $var_magin_left, 40);
printer_draw_text($printer, ":",70, 40);
printer_draw_text($printer, 'abc',80, 40);

// Header Bon
$pen = printer_create_pen(PRINTER_PEN_SOLID, 1, "000000");
printer_select_pen($printer, $pen);
printer_draw_line($printer, $var_magin_left, 65, 400, 65);
printer_draw_text($printer, "TRANSAKSI", $var_magin_left, 70);
printer_draw_text($printer, "QTY", 290, 70);
printer_draw_text($printer, "PRICE", 350, 70);
printer_draw_line($printer, $var_magin_left, 85, 400, 85);

$row +=150;
printer_draw_text($printer, "Terima Kasih Atas Kunjungan Anda", 80, $row);

printer_delete_font($font);
printer_end_page($printer);
printer_end_doc($printer);
printer_close($printer);
?>

Catatan :
- Jika menggunakan WAMPP, saat print ke jaringan akan keluar error sbb:
 
Warning: printer_write() [function.printer-write]: couldn't allocate the printerjob [5] in ....

Hal ini dikarenakan secara default web server WAMPP dijalankan oleh user SYSTEM yang tidak diijinkan akses spool printer jaringan.

Solusinya adalah ubah user yang menjalankan wampp server (apache server) dengan cara:
  1. Jalankan service windows :
    Start > Control Panel > Administrative Tools > Services
  2. Klik Kanan wampapache service > properties
  3. Klik Tab Log On. Secara default dia dipilih Local System Account.
  4. Pilih This Account. Isi dengan user windowsnya saat ini.
  5. Save setingan dan restart servicenya.

Friday, March 9, 2012

Tambahkan font baru dengan fpdf

  • buat file .php (contoh fontbaru.php)
  • isikan sintak program sbb :



    require('/fpdf/makefont/makefont.php');
    MakeFont('square.ttf','cp1252');

    ?>

  • catatan : 'cp1252' adalah file cp1252.map adanya pada folder fpdf/makefont (bisa diganti dengan .map yang lain, disesuaikan dengan jenis font). square.ttf disesuaikan dengan jenis font yang akan kita buat.
  • jalankan program buatfont.php
  • akan menghasilkan 2 file square.php dan square.z
  • copy kedua file tersebut pada folder \fpdf\font
  • untuk menggunakan font baru tersebut, sisipkan script tambahkan pada program php kita $pdf->AddFont('square','','square.php'); setelah baris $pdf     =new FPDF('P','cm','A4');
  • contoh
    $pdf     =new FPDF('P','cm','A4');
    $pdf->AddFont('square','','square.php');
  • selesai

Copy atau Duplikasi Table Pada MySQL

Stepnya ada 2 :
  1. duplikasi struktur table dengan perintah
    "CREATE TABLE database_tujuan.table_tujuan LIKE database_asal.table_asal".
  2. populasi data dengan perintah
    "INSERT INTO database_tujuan.table_tujuan SELECT * FROM database_asal.table_asal".
Contoh Penggunaan :
 
CREATE TABLE baru.tbl_pegawai LIKE lama.tbl_pegawai; -- digunakan untuk duplikasi struktur
 
INSERT INTO
baru.tbl_pegawai SELECT * FROM lama.tbl_pegawai-- digunakan untuk populasi data sesuai sumber

 

Wednesday, January 12, 2011