StarXpand SDK for React Native 開発者向けマニュアル Ver. 1.7.0

最終更新日: 2024年 6月 24日

キャッシュドロアーを使う

キャッシュドロアーを開ける制御データを生成し、プリンターに送信します。
制御データの生成にはDrawerBuilderクラス、送信にはStarPrinterクラスを利用します。

以下の手順を参考にキャッシュドロアーの制御を行ってください。
ページ下部にサンプルコードがあります。

1プリンターの接続先情報を作ります。
通信に使用するinterfaceTypeと、接続先を指定するidentifierをセットしてください。
"プリンターを検索する"で接続先のプリンターを検索済みの場合、この実装は不要です。
手順2のprinter変数には、onPrinterFoundメソッドで取得した StarPrinterインスタンスをセットしてください。

var settings = new StarConnectionSettings();
settings.interfaceType = InterfaceType.Lan;
settings.identifier = “00:11:62:00:00:01”;

2プリンターの接続先情報を与えて、StarPrinterインスタンスを取得します。

var printer = new StarPrinter(settings);

3キャッシュドロアーを開ける制御データを生成し、commands変数にセットします。

Memo
印刷とセットでキャッシュドロアーの制御を行いたい場合は 印刷データの生成:標準機能を参考に、DocumentBuilder に PrinterBuilderとDrawerBuilderを追加して印刷データを生成してください。

try {
    var builder = new StarXpandCommand.StarXpandCommandBuilder();
    builder.addDocument(new StarXpandCommand.DocumentBuilder()
        .addDrawer(new StarXpandCommand.DrawerBuilder()
        .actionOpen(new StarXpandCommand.Drawer.OpenParameter()
            .setChannel(StarXpandCommand.Drawer.Channel.No1)
        )
        )
    );

    var commands: string = await builder.getCommands();

4プリンターに接続するためopenメソッドを呼び出します。

await printer.open();

5プリンターにキャッシュドロアーを開ける制御データを送信するためprintメソッドを呼び出します。

await printer.print(commands);

6エラー時の処理を実装します。errorインスタンスの型によりエラーを判別できます。
発生する可能性のあるエラーはStarPrinterクラスのopenメソッド、 printメソッドのAPIリファレンスに記載されています。

}
catch(error) {
    if (error instanceof StarIO10NotFoundError) {
        // Printer not found.
        // This may be due to the printer not being turned on or incorrect connection information.
    }

    console.log(`Error: ${String(error)}`);
}

7プリンターとの接続を切断するためcloseメソッドを呼び出します。

finally {
    await printer.close();

8printerインスタンスを破棄するためdisposeメソッドを呼び出します。

await printer.dispose();
}
サンプルコード

var settings = new StarConnectionSettings();
settings.interfaceType = InterfaceType.Lan;
settings.identifier = “00:11:62:00:00:01”;

var printer = new StarPrinter(settings);

try {
    var builder = new StarXpandCommand.StarXpandCommandBuilder();
    builder.addDocument(new StarXpandCommand.DocumentBuilder()
        .addDrawer(new StarXpandCommand.DrawerBuilder()
          .actionOpen(new StarXpandCommand.Drawer.OpenParameter()
            .setChannel(StarXpandCommand.Drawer.Channel.No1)
          )
        )
    );
	
    var commands: string = await builder.getCommands();
    await printer.open();
    await printer.print(commands);
}
catch(error) {
    if (error instanceof StarIO10NotFoundError) {
        // Printer not found.
        // This may be due to the printer not being turned on or incorrect connection information.
    }
    console.log(`Error: ${String(error)}`);
}
finally {
    await printer.close();
    await printer.dispose();
}