キャッシュドロアーを使う
キャッシュドロアーを開ける制御データを生成し、プリンターに送信します。
制御データの生成には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();
}