stera terminal(ステラターミナル)にはラインサーマル方式のプリンタが搭載されています。
プリンタの印字仕様は下記のとおりです。
■プリンタ印字仕様
表の詳細については横スクロールさせて確認することができます。
大項目 |
小項目 |
仕様 |
備考 |
---|---|---|---|
大文字印刷 |
フォント |
リコービットマップフォント ゴシックM |
|
|
文字種 (サイズ) |
ANK(12×12)、 ANK(12×24)、 JIS第一水準(24×24)、 JIS第二水準(24×24) |
|
|
印字文字数 |
行最大:半角32文字(全角16文字) 1シート最大:半角4096(エスケープシーケンスなど含む) |
行縦サイズ: 3.375mm |
罫線印字 |
印字 |
線別:実線/破線 方向:横方向/縦方向(実線のみ) |
太さ: 0.125~3.375mm |
イメージ印字 |
印字 |
形式:Bitmap(白黒2値) サイズ:縦200×横384ドット以内(推奨) 最大で縦800×横384ドット以内まで拡張可(※以下の制限事項あり) 個数:推奨サイズを超えるイメージは1シートで最大2個までとする 黒字率(イメージにおける黒色部分の占める割合):50%以下とする 印字ムラ:縦400と600の位置に滲み等が発生する |
印字領域からはみ出た領域は印字されません |
その他 |
倍角印字 |
文字:縦倍角/横倍角/4倍角/12ドット印字 イメージ:縦倍角/横倍角/4倍角 |
|
|
自動切断 |
パーシャルカット/フルカット |
|
印字フォーマットはXML形式で指定します。
印字の際に使用可能なタグは下記のとおりです。
■プリンタXMLタグ
表の詳細については横スクロールさせて確認することができます。
タグ名称 |
内容 |
---|---|
paymentApi |
レシート印字データの開始と終了を示すタグ |
page |
1ページ分の印字開始と終了を示すタグ paymentApiの要素として指定します。 page以下にprintElements要素(必ず1つ以上指定する必要あり)、dialog要素(任意)、promnt要素(任意)、paperCut要素(任意)を記載します。 |
printElements |
印字内容を示すタグ pageの要素として指定します。 printElements以下にsheet要素、image要素を記載します(いずれも任意ですが、最低どれか1つは必要となります)。 |
sheet |
印字する文字、罫線を示すタグ printElementsの要素として指定します。 sheet以下にline、ruledLines、lineFeedを記載します(いずれも任意ですが、最低どれか1つは必要となります)。 |
line |
印刷する1行分の文字列を示すタグ sheetの要素として指定します。 |
text |
印刷する文字列を示すタグ line以下にtext要素を記載します。 scale属性で文字フォーマットを下記から選択することができます。 1:デフォルトサイズ 2:デフォルトから縦方向に2倍拡大 3:デフォルトから横方向に2倍拡大 4:デフォルトから縦横どちらも2倍拡大 5:12dotサイズ 印刷すると、下図PrintSample00のようになります |
ruledLines |
印刷する罫線を示すタグ sheetの要素として指定します。 |
solidLine/dashedLine |
罫線の種類を示すタグ ruledLinesの要素として指定します。 solidLine要素は実線の罫線、 dashedLine要素は破線の罫線を示します。 thickness属性で太さを指定することができます。指定可能なサイズは1~27です。
印刷すると下図PrintSample01のようになります。指定内容は次のとおりです。 図中1:<solidLine thickness=”1”> 図中2:<solidLine thickness=”20”> 図中3:<dashedLine thickness=”1”> 図中4:<dashedLine thickness=”20”> |
vertical/horizontal |
縦罫線/横罫線を示すタグ solidLine/dashedLineの要素として指定します。 以下の属性を必ず指定する必要があります。 ・verticalPosition/horizontalPosition属性 罫線を引き始める位置を指定します。verticalPositionは0~79、 horizontalPositionは0~383の中から指定します ・length属性 罫線の長さを指定します。 vertical要素の場合、0~79、 horizontal要素の場合、0~383の中から指定します。 ※dashedLineはverticalを指定しても破線ではなく、実線として印字されることに注意してください。 印刷すると下図PrintSample02のようになります。指定内容は次のとおりです。 図中1:<vertical length="50" horizontalPosition="0" verticalPosition="0"/> 図中2:<horizontal length="50" horizontalPosition="0" verticalPosition="0"/> |
lineFeed |
空行を示すタグ sheetの要素として指定します。 属性numで表示する行数を指定できます。 指定がない場合、”0”が指定された場合は1が指定されたものとして動作します。 |
image |
印刷する画像を示すタグ printElementsの要素として指定します。 画像データは2通りの方法で印字することができ、必ずどちらかを指定する必要があります。 1. BITMAP形式のバイナリ文字列(16進数文字列)を指定する方法 imageタグ内に文字列を指定することで、画像とみなすことができます。
2. 画像ファイル(bmp形式)をsrcとして指定する方法 imageの要素としてファイルをフルパスで指定します。
以下の属性を必ず指定する必要があります。 ・horizontalPosition 画像を印刷し始める横位置 1~48の中から指定します その他、任意で下記の属性を指定することができます。 ・src stera terminal(ステラターミナル)内に存在するbmp形式ファイルをインポートして印字する場合に指定します。(上記2の指定パターン) フルパスで画像ファイルを指定します。 ・scale 画像フォーマット 下記から1つ選択します。 1:デフォルトサイズ 2:デフォルトから縦方向に2倍拡大 3:デフォルトから横方向に2倍拡大 4:デフォルトから縦横どちらも2倍拡大 |
dialog |
印刷後のダイアログの開始と終了を示すタグ pageの要素として指定します。 message要素を必須で指定する必要があり、messageに記載された文字列がダイアログに表示されます。 |
prompt |
印刷中のメッセージの開始と終了を示すタグ pageの要素として指定します。 message要素を必須で指定する必要があり、messageに記載された文字列が印刷中に表示されます。 |
paperCut |
印刷後に印字結果を自動切断するためのタグ Pageの要素として指定します。 カットの方法は下記2種類あります。 ・パーシャルカット(partialcut) 用紙を完全にカットせず、中央を数ミリ残す切り方 ・フルカット(fullcut) 用紙を完全にカットする切り方
カット方法はpaperCuttingMethod要素で指定します。 |
PrintSample00
PrintSample01
PrintSample02
タグの指定方法は下記のとおりです。(「おむすび」アプリから抜粋しています)
■サンプルXML
コードは横スクロールさせて確認することができます。
<?xml version="1.0" encoding="UTF-8"?> <paymentApi id="printer"> <page> <printElements> <sheet> <line> <text scale="2"> クーポンが当たりました! </text> </line> <line> <text scale="1"> 今日は良い日ですね </text> </line> <line> <text scale="2"> 次回 </text> </line> <line> <text scale="3"> ご来店の際 </text> </line> <line> <text scale="4"> ★★★★★★ </text> </line> <line> <text scale="4"> ★おむすび★ </text> </line> <line> <text scale="4"> ★1個無料★ </text> </line> <line> <text scale="4"> ★★★★★★ </text> </line> <line> <text scale="1">次回、このレシートをお持ち下さい</text> </line> <ruledLines> <dashedLine thickness="3"> <horizontal length="0" horizontalPosition="0" verticalPosition="0" /> </dashedLine> </ruledLines> <lineFeed num="2" /> </sheet> <image horizontalPosition="1" scale="1" src="/sdcard/omusubi.bmp" /> </printElements> <paperCut paperCuttingMethod="partialcut" /> </page> </paymentApi>
上記XMLで印刷を実行すると、下図のようになります。
プリンタを利用するためには、下図の手続きを実施する必要があります。
実際のコードは下記になります。
コードは横スクロールさせて確認することができます。
// stera terminal制御ライブラリ(PaymentApi.jar)との接続 mPaymentApiConnection = new PaymentApiConnection(); // ライブラリの初期化 mPaymentApiConnection.initializePaymentApi(this); // ライブラリとの接続確認 mPaymentApiConnection.setIPaymentApiInitializationListener(new IPaymentApiInitializationListener() { // 接続成功した場合の処理 @Override public void onApiConnected() { mCallbackHandler.post(new Runnable() { @Override public void run() { // デバイス制御ライブラリのインスタンス取得 mIPaymentDeviceManager = mPaymentApiConnection.getIPaymentDeviceManager(); // プリンタライブラリのインスタンス取得 IReceiptPrinter receiptPrinter = mIPaymentDeviceManager.getReceiptPrinter(); // プリンタ IReceiptPrinterListener mReceiptPrinterListerner = new IReceiptPrinterListener.Stub() { @Override public void onPrintReceipt(Result result) throws RemoteException { } }; receiptPrinter.printReceipt(getContent(), mReceiptPrinterListerner); } }); } // 接続失敗した場合の処理 @Override public void onApiDisconnected() { } });
初期化成功すると、印字処理を行うことができるようになります。
プリンタ使用後は、必ずtermを実行してください。