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

最終更新日: 2024年 11月 1日

Step.1 印刷データの生成 : 標準機能

PrinterBuilderを使って、印刷データを生成します。
PrinterBuilderにはレシートやラベルの印刷データを生成するための便利なメソッドが用意されています。


以下は、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();