プリンタを動かす

stera terminal(ステラターミナル)のプリンタについて

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ビット以内

印字領域からはみ出た領域は印字されません

その他

倍角印字

文字:縦倍角/横倍角/4倍角/12ドット印字

 

 

自動切断

パーシャルカット/フルカット

 

 

stera(ステラ)アプリケーションとプリンタとの連携にはPaymentApi.jarを使用します。

PaymentApi.jarの利用方法はこちらを参照ください。

印字フォーマットはXML形式で指定します。

印字の際に使用可能なタグは下記のとおりです。

 

■プリンタXMLタグ

表の詳細については横スクロールさせて確認することができます。

タグ名称

内容

paymentApi Element

レシート印字データの開始と終了を示すタグ

page Element

1ページ分の印字開始と終了を示すタグ

paymentApiの要素として指定します。

page以下にprintElements要素(必ず1つ以上指定する必要あり)、dialog要素(任意)、promnt要素(任意)、paperCut要素(任意)を記載します。

printElements Element

印字内容を示すタグ

pageの要素として指定します。

printElements以下にsheet要素、image要素を記載します(いずれも任意ですが、最低どれか1つは必要となります)。

sheet Element

印字する文字、罫線を示すタグ

printElementsの要素として指定します。

sheet以下にline、ruledLines、lineFeedを記載します(いずれも任意ですが、最低どれか1つは必要となります)。

line Element

印刷する1行分の文字列を示すタグ

sheetの要素として指定します。

text Element

印刷する文字列を示すタグ

line以下にtext要素を記載します。

scale属性で文字フォーマットを下記から選択することができます。

1:デフォルトサイズ

2:デフォルトから縦方向に2倍拡大

3:デフォルトから横方向に2倍拡大

4:デフォルトから縦横どちらも2倍拡大

5:12dotサイズ

印刷すると、下図PrintSample00のようになります

ruledLines Element

印刷する罫線を示すタグ

sheetの要素として指定します。

solidLine Element/dashedLine Element

罫線の種類を示すタグ

ruledLinesの要素として指定します。

solidLine要素は実線の罫線、

dashedLine要素は破線の罫線を示します。

thickness属性で太さを指定することができます。指定可能なサイズは1~27です。

 

印刷すると下図PrintSample01のようになります。指定内容は次のとおりです。

図中1:<solidLine thickness=”1”>

図中2:<solidLine thickness=”20”>

図中3:<dashedLine thickness=”1”>

図中4:<dashedLine thickness=”20”>

vertical Element/horizontal Element

縦罫線/横罫線を示すタグ

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 Element

空行を示すタグ

sheetの要素として指定します。

属性numで表示する行数を指定できます。

指定がない場合、”0”が指定された場合は1が指定されたものとして動作します。

imageElement

印刷する画像を示すタグ

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 Element

印刷後のダイアログの開始と終了を示すタグ

pageの要素として指定します。

message要素を必須で指定する必要があり、messageに記載された文字列がダイアログに表示されます。

prompt Element

印刷中のメッセージの開始と終了を示すタグ

pageの要素として指定します。

message要素を必須で指定する必要があり、messageに記載された文字列が印刷中に表示されます。

paperCut Element

印刷後に印字結果を自動切断するためのタグ

Pageの要素として指定します。

カットの方法は下記2種類あります。

・パーシャルカット(partialcut)

 用紙を完全にカットせず、中央を数ミリ残す切り方

・フルカット(fullcut)

 用紙を完全にカットする切り方

 

カット方法はpaperCuttingMethod要素で指定します。

印刷例1
印刷例2
印刷例3

 

タグの指定方法は下記のとおりです。(「おむすび」アプリから抜粋しています)

■サンプル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を実行してください。