URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=33746
|
最終更新日 2019/01/17 |
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 |
|