web-dev-qa-db-ja.com

POSプリンターを使用したJavascriptレシート印刷

Webアプリケーションで、POS(Point of Sale)プリンターを使用して領収書を印刷します。私はJavascriptでそれをしたいです。誰も私にその例を提供できますか?

30
Sachindra

あなたの質問はあまり詳細ではなかったので、私はここに出かけます、a)レシートプリンターは生データを必要とするサーマルプリンターである、b)Webブラウザーからの印刷について話している「javascriptから」 c)ブラウザから生データを送信するアクセス権がないこと

Javaあなたのためにすべてを解決するアプレットがあります。これらの仮定について正しいなら、Java、Flash、またはSilverlightのいずれかが必要です http://code.google .com/p/jzebra /

14
Scott Selby

ブラウザベースのPOSアプリについて話している場合は、基本的にそのままでは実行できません。いくつかの選択肢があります。

  1. スコット・セルビーが言うようなアプレットを使う
  2. サーバーから印刷します。これがクラウドサーバーの場合、つまりレシートプリンターに接続できない場合は、
    • サーバーからPDFとして生成し、ブラウザーで印刷ダイアログをポップアップ表示することができます
    • プリンターをクラウドサービスに接続できるGoogleクラウドプリントなどを使用します
8
Craig

編集:2017年11月27日─リンク切れ

David Kelleyによって書かれた投稿に関する以下のリンクは壊れています

リポジトリのキャッシュバージョンがあります。ChromeブラウザのURLの前にcache:を追加し、Enterキーを押します。


このソリューションは、 Google Chrome および Chromiumベースの ブラウザー専用です。

編集:

(*)リンクが壊れています。幸いなことに、次のマークダウンファイルに投稿のソースを含む this repository が見つかりました。 [〜#〜] a [〜#〜] | [〜#〜] b [〜#〜]

このリンク* Chrome/ChromiumUSB API(1)(2) を使用して、ESC/POSプリンター用のJavaScriptインターフェイスを作成する方法を説明します。 このリンク* chrome.usb.* AP​​Iを使用してUSBデバイスに接続する方法を説明します。

6
Richard Cotrina

最近、Webページ上のボタンを押すだけで、プリンターオプションを入力せずにレシート印刷を実装しました。 ePOS用のEPSON javascript SDKを使用して実行しました。 EPSON TM-mレシートプリンターでテストしました。

サンプルコードは次のとおりです。

var printer = null;
var ePosDev = null;

function InitMyPrinter() {
    console.log("Init Printer");

    var printerPort = 8008;
    var printerAddress = "192.168.198.168";
    if (isSSL) {
        printerPort = 8043;
    }
    ePosDev = new epson.ePOSDevice();
    ePosDev.connect(printerAddress, printerPort, cbConnect);
}

//Printing
function cbConnect(data) {
    if (data == 'OK' || data == 'SSL_CONNECT_OK') {
        ePosDev.createDevice('local_printer', ePosDev.DEVICE_TYPE_PRINTER,
            {'crypto': false, 'buffer': false}, cbCreateDevice_printer);
    } else {
        console.log(data);
    }
}

function cbCreateDevice_printer(devobj, retcode) {
    if (retcode == 'OK') {
        printer = devobj;
        printer.timeout = 60000;
        printer.onreceive = function (res) { //alert(res.success);
            console.log("Printer Object Created");

        };
        printer.oncoveropen = function () { //alert('coveropen');
            console.log("Printer Cover Open");

        };
    } else {
        console.log(retcode);
        isRegPrintConnected = false;
    }
}

function print(salePrintObj) {
    debugger;
    if (isRegPrintConnected == false
        || printer == null) {
        return;
    }
    console.log("Printing Started");


    printer.addLayout(printer.LAYOUT_RECEIPT, 800, 0, 0, 0, 35, 0);
    printer.addTextAlign(printer.ALIGN_CENTER);
    printer.addTextSmooth(true);
    printer.addText('\n');
    printer.addText('\n');

    printer.addTextDouble(true, true);
    printer.addText(CompanyName + '\n');

    printer.addTextDouble(false, false);
    printer.addText(CompanyHeader + '\n');
    printer.addText('\n');

    printer.addTextAlign(printer.ALIGN_LEFT);
    printer.addText('DATE: ' + currentDate + '\t\t');

    printer.addTextAlign(printer.ALIGN_RIGHT);
    printer.addText('TIME: ' + currentTime + '\n');

    printer.addTextAlign(printer.ALIGN_LEFT);

    printer.addTextAlign(printer.ALIGN_RIGHT);
    printer.addText('REGISTER: ' + RegisterName + '\n');
    printer.addTextAlign(printer.ALIGN_LEFT);
    printer.addText('SALE # ' + SaleNumber + '\n');

    printer.addTextAlign(printer.ALIGN_CENTER);
    printer.addTextStyle(false, false, true, printer.COLOR_1);
    printer.addTextStyle(false, false, false, printer.COLOR_1);
    printer.addTextDouble(false, true);
    printer.addText('* SALE RECEIPT *\n');
    printer.addTextDouble(false, false);
....
....
....

}
5
Habib Sheikh

フォームJavaScriptをStar Micronics Webprnt TSP 654iiサーマルプリンターに印刷しました。このプリンターは有線ネットワークプリンターであり、コンテンツをHTMLキャンバスに描画し、印刷するHTTP要求を作成できます。唯一の注意点は、このプリンターはまだHTTPSプロトコルをサポートしていないため、実稼働環境では混合コンテンツの警告が表示されることです。スターマイクロニクスサポートに連絡し、HTTPSサポートに取り組んでおり、まもなくファームウェアのアップグレードが利用可能になると彼らは言った。また、TM-Iを搭載したEpson Omnilink TM-88Vプリンターはjavascript印刷をサポートするようです。

サンプルコードを次に示します。 https://github.com/w3cloud/starwebprint

4
Karthik Sankar

お使いのプリンターがエプソンの場合、これを見ることができます。 javascriptドライバーがあります

http://spsrprofessionals.com/ClientSite/readers/ePOS-Print_SDK_141020E/JavaScript/ePOS-Print_SDK_JS_en_revB.pdf

編集:

前のリンクが壊れているようです

Epsonのeposの使用方法に関するすべての詳細は、epsonのWebサイトにあります。

https://reference.epson-biz.com/modules/ref_epos_device_js_en/index.php?content_id=139

2
phyzalis

escpos for PHP POS印刷使用 https://github.com/mike42/escpos-php

1
Rajendra

https://www.printnode.com を使用してみてください。これは基本的にまさに探しているサービスです。デスクトップクライアントをダウンロードしてユーザーのコンピューターにインストールします- https://www.printnode.com/download 。次に、JSON API https://www.printnode.com/docs/api/curl/ を使用して、そのユーザーのコンピューター上のプリンターを検出して印刷できます。ここには多くのライブラリがあります: https://github.com/PrintNode/

1
user1912424