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

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

Step.2 印刷データの送信 : テンプレート印刷機能

Step1で生成したテンプレートとフィールドデータを組み合わせてテンプレート印刷を行います。

以下の手順を参考に、印刷データを送信してください。
ページ下部にサンプルコードがあります。 また、SDKのサンプルアプリも参考にしてください。

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);

3Step1で作ったテンプレートをtemplateプロパティ変数にセットします。

try {
    var template: string = ...
    printer.template = template;

Memo
印刷データの送信:標準機能ではStarXpandCommandBuilderで生成した印刷データをprintAsyncメソッドの引数に渡していましたが、テンプレート印刷を行う場合はtemplateプロパティにセットします。

4Step1で用意したフィールドデータをfieldData変数にセットします。

let fieldData = …

5openメソッドを呼び出し、プリンターに接続します。

await printer.open();

6printメソッドを呼び出し、プリンターにフィールドデータを送信します。 これにより、templateプロパティにセットされたテンプレートとフィールドデータを組み合わせてテンプレート印刷を行います。

await printer.print(fieldData);

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

catch(error) {
    if (error instanceof StarIO10ArgumentError) {
    }
    else if (error instanceof StarIO10NotFoundError) {
    }
}

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

    await printer.close();

9disposeメソッドを呼び出し、printerインスタンスを破棄します。

    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 {
    // Set the print data created in Step 1 to the commands variable. 
    var template: string = ...
    printer.template = template;

    // Set the field data prepared in Step 1 to the fieldData variable.
    var fieldData = …

    await printer.open();
    await printer.print(fieldData);
}
catch(error) {
    if (error instanceof StarIO10ArgumentError) {
        // Argument is not correct.
        // This may be due to invalid template or field data.
    }
    else 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();
}