ロゴ:EPSON
ロゴ:よくあるご質問(FAQ)

製品別
質問別
販売店様

URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=33746
  FAQ番号:33746
ePOS SDK / ePOS-Print で再印刷をおこなう方法
ePOS SDK for JavaScript / ePOS-Print SDK for JavaScript での印刷が失敗したとき、再印刷ができるようにしたい。
 
 

Epson ePOS SDK for JavaScript / Epson ePOS-Print SDK for JavaScript で再印刷をおこなうには、onreceive などのプリンターのステータスを取得するイベント API を使用してください。
印刷が失敗したときに再印刷をおこなう仕組みを作れるほかに、現在のプリンターの状態を知ることもできます。

 

onreceive イベントを使用し、再印刷をおこなうサンプルを以下に掲載します。

ePOS-Print SDK for JavaScript の onreceive イベントを使用した再印刷


<html>
<head>
<title>TITLE</title>
<script type="text/javascript" src="epos-print-*.*.*.js"></script>
<script type="text/javascript">
<!--
function buildMessage() {
  // 印刷ドキュメントの作成
  var builder = new epson.ePOSBuilder();
  builder.addTextLang('ja');
  builder.addTextSmooth(true);
  builder.addTextFont(builder.FONT_A);
  builder.addTextSize(3, 3);
  builder.addText('Hello,\tWorld!\n');
  builder.addText('EPSON TM Printer\n');
  builder.addCut(builder.CUT_FEED);
  var request = builder.toString();

  var address = 'http://192.168.0.178/cgi-bin/epos/service.cgi?'
  address = address + 'devid=local_printer&timeout=10000';

  //ePOS-Print オブジェクトの作成
  var epos = new epson.ePOSPrint(address);

  // 応答受信コールバック関数の設定
  epos.onreceive = function (res) {

    // 印刷に失敗した場合、メッセージを表示
    if (!res.success) {

       //再印刷をおこなうかの確認
       if( confirm('印刷に失敗しました。\n再印刷しますか?')){

     // 印刷ドキュメントを送信
          epos.send(request);

       //再印刷キャンセル時の処理
       }else{
          alert(' 印刷をキャンセルしました。');
       }
    }
  }

  // 印刷ドキュメントを送信
  epos.send(request);
}
//-->
</script>
</head>
<body>
<button onclick="buildMessage()">印刷実行</button>
</body>
</html>


Epson ePOS SDK for JavaScript の onreceive イベントを使用した再印刷


<html>
<head>
<title>TITLE</title>
<script type="text/javascript" src="epos-*.*.*.js"></script>
<script type="text/javascript">
<!--
  var ePosDev = new epson.ePOSDevice();
  var printer = null;
  var temp;

  function connect(){

    // デバイスと接続
    ePosDev.connect('192.168.192.168', '8008', cback_connect);
  }

  function cback_connect(cResult){

    // connect メソッドの実行結果 cResult
    if ((cResult == 'OK') || (cResult == 'SSL_CONNECT_OK')) {

      //Printer オブジェクトを取得する
      ePosDev.createDevice('local_printer', ePosDev.DEVICE_TYPE_PRINTER,
      {'crypto' :false, 'buffer' : false}, cback_createDevice);
    }
  }

  function cback_createDevice(deviceObj, retcode){

    printer = deviceObj;

    // 応答受信コールバック関数の設定
    printer.onreceive = function (res) {

      // 印刷に失敗した場合、メッセージを表示
      if (!res.success) {

        //再印刷をおこなうかの確認
        if( confirm('印刷に失敗しました。\n再印刷しますか?')){

          // Copy を戻す
          printer.message = temp;

          // 再送
          printer.send();

        //再印刷キャンセル時の処理
        }else{
          alert(' 印刷をキャンセルしました。');
        }
      }
    };
  }

  function buildMessage() {
    // 印刷ドキュメントの作成部分
  }

  function printout(){

    // send 前に Copy しておく
    var temp = printer.message;

    // 印刷ドキュメントを送信
    printer.send();

  }
//-->
</script>
</head>
<body>
<button onclick="printout()">印刷実行</button>
</body>
</html>

イベント API の詳細については、Epson ePOS SDK for JavaScript のユーザーズマニュアルをご覧ください。
ユーザーズマニュアルはこちらから入手できます。

スマートレシートプリンター TM-L90-i,TM-T70-i,TM-T88V-i
モバイルプリンター TM-P20,TM-P60II,TM-P80
PC一体型プリンター TM-T70II-DT,TM-T88V-DT
TMシリーズ TM-T20II,TM-T70II,TM-T88V,TM-T90II,TM-m10,TM-m30
FAQ改善アンケート

このページの評価をお聞かせください。〇✖をお選びください。

 

■役に立った
■役に立たなかった