38

Web アプリケーションで、POS (Point of Sale) プリンターを使用してレシートを印刷したいと考えています。それをJavascriptで実現したい。誰かがその例を教えてもらえますか?

4

8 に答える 8

16

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

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

于 2012-07-13T04:23:16.847 に答える
13

私は最近、Web ページのボタンを押すだけでレシートの印刷を実装しました。プリンターのオプションを入力する必要はありません。EPSON javascript SDK for ePOSを使用して実行しました。EPSON TM-m30レシートプリンターでテストしました。

これがサンプルコードです。

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);
....
....
....

}
于 2017-06-20T18:13:27.667 に答える
7

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

  1. Scott Selbyが言うようにアプレットを使用してください
  2. サーバーから印刷します。これがクラウド サーバーである場合、つまりレシート プリンターに接続できない場合、できることは次のとおりです。
    • サーバーから、ブラウザーで印刷ダイアログをポップアップするために作成できる PDF として生成します。
    • プリンタをクラウド サービスに接続できる Google クラウド プリントなどを使用します。
于 2012-07-13T04:31:31.693 に答える
7

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

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

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


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

編集:

(*)リンク切れです。幸いなことに、次のマークダウン ファイルに投稿のソースを含むこのリポジトリを見つけましB

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

于 2013-12-31T23:06:35.510 に答える
4

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

サンプルコードは次のとおりです: https://github.com/w3cloud/starwebprint

于 2015-02-27T15:24:34.703 に答える
3

お使いのプリンターがエプソンの場合は、こちらをご覧ください。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_ja/index.php?content_id=139

于 2015-05-25T21:13:11.037 に答える
1

PHP POS印刷用にEscposを試して くださいhttps://github.com/mike42/escpos-phpを使用してください

于 2015-07-16T19:04:02.960 に答える
1

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

于 2015-07-29T14:18:49.750 に答える