Step.1 印刷データの生成 : 標準機能
PrinterBuilderを使って、印刷データを生成します。
PrinterBuilderにはレシートやラベルの印刷データを生成するための便利なメソッドが用意されています。
![](assets/img/PrinterBuilder_image.png)
以下は、SDKで用意されている印刷サンプルの印字結果です。番号の個所について説明しています。
作成した印刷データはStep2で使用します。
以下の手順を参考に、印刷データを作成してください。
ページ下部にサンプルコードがあります。
また、SDKのサンプルアプリも参考にしてください。
1印刷データを生成するために使用するStarXpandCommandBuilderインスタンスを生成します。
addDocumentメソッドを呼び出して
DocumentBuilderを追加し、
addPrinterメソッドを呼び出してPrinterBuilderを追加します。
PrinterBuilderの各メソッドを呼び出して、印刷データを生成していきます。
var builder = new StarXpandCommand.StarXpandCommandBuilder(); builder.addDocument(new StarXpandCommand.DocumentBuilder() .addPrinter(new StarXpandCommand.PrinterBuilder()
2画像の印刷を指示するためactionPrintImageメソッドを呼び出します。
.actionPrintImage(new StarXpandCommand.Printer.ImageParameter("logo_01.png", 406))
3国際文字セットをUSAに設定するためstyleInternationalCharacterメソッドを呼び出します。
.styleInternationalCharacter(StarXpandCommand.Printer.InternationalCharacterType.Usa)
4文字間スペースを0ドットに設定するためstyleCharacterSpaceメソッドを呼び出します。
.styleCharacterSpace(0)
5左右位置を中央揃えに設定するためstyleAlignmentメソッドを呼び出します。
.styleAlignment(StarXpandCommand.Printer.Alignment.Center)
6文字列の印刷を指示するためactionPrintTextメソッドを呼び出します。 引数の文字列の印刷を行います。
.actionPrintText("Star Clothing Boutique\n" + "123 Star Road\n" + "City, State 12345\n" + "\n")
Memo
TSP100IIIシリーズとTSP100IIU+は画像印刷専用プリンターのため、actionPrintTextメソッドはサポートしていません。
これらのプリンターの印刷データを生成するためにはactionPrintImageメソッドをご利用ください。その他利用可能なメソッドは各メソッドの"Supported Model"を参照ください。
7addメソッドを呼び出して、入れ子のPrinterBuilderインスタンスを追加することができます。
入れ子のPrinterBuilderで設定された文字装飾は、そのPrinterBuilder内でのみ有効となり、親のPrinterBuilderには引き継がれません。
文字列の縦横2倍拡大を設定するためstyleMagnificationメソッドを呼び出します。
.add(new StarXpandCommand.PrinterBuilder() .styleMagnification(new StarXpandCommand.MagnificationParameter(2, 2)) .actionPrintText(" $156.95\n")
8文字列の白黒反転を設定するためstyleInvertメソッドを呼び出します。
.styleInvert(true)
9バーコードの印刷を指示するためactionPrintBarcodeメソッドを呼び出します。 バーコードの設定はBarcodeParameterにて行います。
.actionPrintBarcode(new StarXpandCommand.Printer.BarcodeParameter('0123456', StarXpandCommand.Printer.BarcodeSymbology.Jan8) .setBarDots(3) .setBarRatioLevel(StarXpandCommand.Printer.BarcodeBarRatioLevel.Level0) .setHeight(5) .setPrintHri(true))
101行分の紙送りを指示するためactionFeedLineメソッドを呼び出します。
.actionFeedLine(1)
11QRコードの印刷を指示するためactionPrintQRCodeメソッドを呼び出します。 QRコードの設定はQRCodeParameterにて行います。
.actionPrintQRCode(new StarXpandCommand.Printer.QRCodeParameter('Hello World.\n') .setModel(StarXpandCommand.Printer.QRCodeModel.Model2) .setLevel(StarXpandCommand.Printer.QRCodeLevel.L) .setCellSize(8))
12中央一点残しの用紙カット(パーシャルカット)を指示するためactionCutメソッドを呼び出します。
.actionCut(StarXpandCommand.Printer.CutType.Partial)
13印刷データを取得するためgetCommandsメソッドを呼び出します。
var commands = await builder.getCommands();
サンプルコード
var builder = new StarXpandCommand.StarXpandCommandBuilder();
builder.addDocument(new StarXpandCommand.DocumentBuilder()
.addPrinter(new StarXpandCommand.PrinterBuilder()
.actionPrintImage(new StarXpandCommand.Printer.ImageParameter("logo_01.png", 406))
.styleInternationalCharacter(StarXpandCommand.Printer.InternationalCharacterType.Usa)
.styleCharacterSpace(0)
.styleAlignment(StarXpandCommand.Printer.Alignment.Center)
.actionPrintText("Star Clothing Boutique\n" +
"123 Star Road\n" +
"City, State 12345\n" +
"\n")
.styleAlignment(StarXpandCommand.Printer.Alignment.Left)
.actionPrintText("Date:MM/DD/YYYY Time:HH:MM PM\n" +
"--------------------------------\n" +
"\n")
.actionPrintText("SKU Description Total\n" +
"300678566 PLAIN T-SHIRT 10.99\n" +
"300692003 BLACK DENIM 29.99\n" +
"300651148 BLUE DENIM 29.99\n" +
"300642980 STRIPED DRESS 49.99\n" +
"300638471 BLACK BOOTS 35.99\n" +
"\n" +
"Subtotal 156.95\n" +
"Tax 0.00\n" +
"--------------------------------\n")
.actionPrintText("Total ")
.add(new StarXpandCommand.PrinterBuilder()
.styleMagnification(new StarXpandCommand.MagnificationParameter(2, 2))
.actionPrintText(" $156.95\n")
)
.actionPrintText("--------------------------------\n" +
"\n" +
"Charge\n" +
"156.95\n" +
"Visa XXXX-XXXX-XXXX-0123\n" +
"\n")
.add(new StarXpandCommand.PrinterBuilder()
.styleInvert(true)
.actionPrintText("Refunds and Exchanges\n")
)
.actionPrintText("Within ")
.add(new StarXpandCommand.PrinterBuilder()
.styleUnderLine(true)
.actionPrintText("30 days")
)
.actionPrintText(" with receipt\n")
.actionPrintText("And tags attached\n" +
"\n")
.styleAlignment(StarXpandCommand.Printer.Alignment.Center)
.actionPrintBarcode(new StarXpandCommand.Printer.BarcodeParameter('0123456',
StarXpandCommand.Printer.BarcodeSymbology.Jan8)
.setBarDots(3)
.setBarRatioLevel(StarXpandCommand.Printer.BarcodeBarRatioLevel.Level0)
.setHeight(5)
.setPrintHri(true))
.actionFeedLine(1)
.actionPrintQRCode(new StarXpandCommand.Printer.QRCodeParameter('Hello World.\n')
.setModel(StarXpandCommand.Printer.QRCodeModel.Model2)
.setLevel(StarXpandCommand.Printer.QRCodeLevel.L)
.setCellSize(8))
.actionCut(StarXpandCommand.Printer.CutType.Partial)
)
);
var commands = await builder.getCommands();