Ahadmart / ap3

AhadPOS 3 - Software POS (point of sales) berbasis web. Lisensi open source (GPL v2)
57 stars 48 forks source link

Print dari Windows client #24

Closed myzahron closed 6 years ago

myzahron commented 7 years ago

Mohon maaf, apakah Kasir POS dengan server/client OS Windows sudah bisa print langsung struk penjualan? Kalau belum, bagaimana cara menyumbangkan script untuk penambahan fitur print tersebut?

AbuMuhammad commented 7 years ago

Ahadpos3 menggunakan perintah lpr untuk print dari server ke client. Di linux (Ubuntu) ini sudah ada secara default. Untuk client windows saya belum pernah coba. Coba dicari di google: misal dengan keyword: print via lpr on windows 10 misal: http://campus.mst.edu/cis/desktop/documentation/pc/win7_x64/lpr_printer/install.htm https://wiki.rit.edu/display/CISHelp/Windows+10+Printer+Setup Kalau antum sempat mencoba, dan bisa. Tolong dibuatkan tutorialnya

AbuMuhammad commented 7 years ago

Atau menggunakan raw printing via browser https://qz.io/ Ini menambah kerumitan diinstalasi baik di server (sepertinya harus https) dan di client harus diinstall aplikasi client nya. Ahadpos3 sudah pernah akan ditambah fitur ini, tapi belum sempat.. Jadi.. itu dua kemungkinan opsi yang mungkin aplicable. Silahkan..

myzahron commented 7 years ago

Maksud saya, bagaimana cara memasukkan tambahan fitur di github untuk mencetak langsung dari browser. Di tempat saya sudah bisa cetak langsung dari browser, dengan memodifikasi script ap3 yang ada, sudah sama seperti pencetakan struk di ahadmart :)

AbuMuhammad commented 7 years ago

Oo.. Kalau itu saya juga belum tahu. Mungkin di fork, kemudian pull request? Atau dicopas di sini dulu? Bagian yg diubah?

On 2 May 2017 09:59, "myzahron" notifications@github.com wrote:

Maksud saya, bagaimana cara memasukkan tambahan fitur di github untuk mencetak langsung dari browser. Di tempat saya sudah bisa cetak langsung dari browser, dengan memodifikasi script ap3 yang ada, sudah sama seperti pencetakan struk di ahadmart :)

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/AbuMuhammad/ap3/issues/24#issuecomment-298485885, or mute the thread https://github.com/notifications/unsubscribe-auth/ADR4sNSd_7zI-xvfDQAcp1vZRPmY48Uaks5r1pwlgaJpZM4NMPb8 .

myzahron commented 7 years ago

copasnya agak panjang :) Saya ambil scipt tambahannya aja ya:

di models Device:

36 const TIPE_BROWSER_PRINTER =6;
181 Device::TIPE_BROWSER_PRINTER => 'Printer - Browser',

di Penjualan controller:

53         $tipePrinterStruk = array(Device::TIPE_LPR, Device::TIPE_TEXT_PRINTER, Device::TIPE_BROWSER_PRINTER);
595 case Device::TIPE_BROWSER_PRINTER:
596 $this->printBrowser($id, $device, self::PRINT_STRUK);
597 break;

625    public function printBrowser($id, $device, $print = 0){
626        $model = $this->loadModel($id);
627        $text = $this->getText($model, $print);
628        $this->renderPartial('_print_autoclose_browser', array(
629            'text' => $text
630        ));        
631    }

di Views Penjualan, dibuat file baru: _print_autoclose_browser.php

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
            @media print{
                #printable      { display: block; }
                #nonPrintable   { display: none; }
            }
            h1 {
                font-size: 3.5rem;
                color: #fff;
                font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
                font-style: normal;
                font-weight: 300;
            }
            body {
                background-color : #0D47A1;
            }
        </style>
        <script>
            function printMe() {
                window.print();
            }
            setTimeout(
                function () {
                    self.close();
                    window.history.go(-1);
                },
                3000);

        </script>
    </head>

    <body onload="printMe()">
        <div id="nonPrintable"><h1>printing..</h1></div>
        <div style="background-color: #fff; color: #000;" id="printable">
            <div style="display: inline-block; text-align: left">
                <pre><b><?php echo $text; ?></b></pre>
            </div>
        </div>
    </body>
</html>

Kemudian agar bisa langsung print struk tanpa konfirmasi Print Dialog, pada Firefox (belum mencoba di lain browser), pada config:about, ditambahkan key: print.always_print_silent Pada Page Setup, disetting: margin 0, centang di: shrink to fit Page Width

AbuMuhammad commented 7 years ago

Terima kasih banyak masukannya. Kalau tidak salah window.print() ini bukan raw printing ya? Jadinya seperti graph printing. Saya pernah coba metoda seperti ini, tapi karena di ahadmart pakai linux semua.. tidak jadi. Karena kelemahannya printnya lebih lama, dan tidak bisa mengirim perintah lain seperti autocut (potong kertas), & drawer kick (otomatis buka cash drawer). Saya lebih suka jika lpr bisa dikonfugurasi di windows. Harapannya, kekurangan yang di atas jadi tidak ada. Hanya saja belum sempat testnya. Mungkin antum bisa? :senyum

Tapi insyaAllah saya nanti tetap akan masukkan ini, ke ap3

myzahron commented 7 years ago

Kalau printnya lebih lama, kayaknya tidak, karena di tempat saya bisa print dengan kecepatan normal. Atau mungkin tergantung printer nya ya? Memang betul sih, tidak bisa autocut kertas dan drawer kick :)

AbuMuhammad commented 7 years ago

Kalau raw printing lebih cepat dari normal :senyum 1 baris 1 kali print (sepertinya), kalau print normal, mungkin bisa 2 kali bolak balik untuk print 1 baris. Saya sudah pernah membandingkan di linux.

Mungkin bisa dicoba di windows perintahnya langsung untuk membandingkan, misal: echo file.txt > LPT1 file.txt adalah file text biasa

aryasuryawan commented 4 years ago

Maksud saya, bagaimana cara memasukkan tambahan fitur di github untuk mencetak langsung dari browser. Di tempat saya sudah bisa cetak langsung dari browser, dengan memodifikasi script ap3 yang ada, sudah sama seperti pencetakan struk di ahadmart :)

Pak @myzahron berkenankah membagikan pengalaman cara setting lpr print di windows? saya pengen jajal belum dapat tutorialnya. Bila berkenan mungkin bisa email saya di arya.muhamad@gmail.com jazzakallahu khairan pak

sufehmi commented 4 years ago

Mohon maaf, apakah Kasir POS dengan server/client OS Windows sudah bisa print langsung struk penjualan? Kalau belum, bagaimana cara menyumbangkan script untuk penambahan fitur print tersebut?

Terimakasih banyak untuk niat baiknya.

Cara termudah adalah posting di https://pastebin.com/ , dan lalu copas linknya disini.

Maka kami bisa segera cek & integrasikan dengan code yang ada, dan lalu update repo ini

Sekali lagi terimakasih

sufehmi commented 4 years ago

Kalau raw printing lebih cepat dari normal :senyum 1 baris 1 kali print (sepertinya), kalau print normal, mungkin bisa 2 kali bolak balik untuk print 1 baris. Saya sudah pernah membandingkan di linux.

Mungkin bisa dicoba di windows perintahnya langsung untuk membandingkan, misal: echo file.txt > LPT1 file.txt adalah file text biasa

Menarik pak.

Mungkin kita bisa bikin fasilitas driver printer ya di AhadPOS ?

(1) alamat printer : contoh

LPT1 PRN 192.168.0.1/9001

(2) nama driver

dropdown list, dipilih dari file-file INI yang ada di folder /printer

=========== guna driver printer

berisi kode untuk :

1/ formatting

2/ drawer kick

3/ autocut

4/ .... (silakan ditambahkan)

myzahron commented 4 years ago

Mohon maaf, apakah Kasir POS dengan server/client OS Windows sudah bisa print langsung struk penjualan? Kalau belum, bagaimana cara menyumbangkan script untuk penambahan fitur print tersebut?

Terimakasih banyak untuk niat baiknya.

Cara termudah adalah posting di https://pastebin.com/ , dan lalu copas linknya disini.

Maka kami bisa segera cek & integrasikan dengan code yang ada, dan lalu update repo ini

Sekali lagi terimakasih

Sudah saya sampaikan diatas pak, dan sepertinya juga sudah diintegrasikan

myzahron commented 4 years ago

Maksud saya, bagaimana cara memasukkan tambahan fitur di github untuk mencetak langsung dari browser. Di tempat saya sudah bisa cetak langsung dari browser, dengan memodifikasi script ap3 yang ada, sudah sama seperti pencetakan struk di ahadmart :)

Pak @myzahron berkenankah membagikan pengalaman cara setting lpr print di windows? saya pengen jajal belum dapat tutorialnya. Bila berkenan mungkin bisa email saya di arya.muhamad@gmail.com jazzakallahu khairan pak

Untuk penggunaan windows, saya memanfaatkan fitur print dari browser-nya pak. Jadi prosesnya: kirim data ke page baru -> auto print -> auto close. Saya tidak menggunakan lpr print. PHP code-nya ada diatas.