ラベル プリンターは、TSPL、ZPL、EPL などのプログラミング言語をサポートできます。今日は、TSPL 言語の概要を説明します。 、 、 などの TSPL コマンドを使用してラベルを作成できます。たとえば、テキストとバーコードを含むラベルを印刷する場合、これらのコマンドを位置やサイズなどのプロパティと共に使用し、これらのコマンドを Bluetooth またはシリアル接続を介してラベル プリンターに送信します。 TEXT BARCODE QRCODE 左側に TSPL コマンド、右側に印刷されたラベルが表示されます。使用可能なすべてのコマンドは で見つけることができますが、TSPL の使用方法を理解するためにそれらのいくつかを見てみましょう。 ここ ドット単位の座標とサイズ 、 、または のいずれであっても、通常、座標とサイズはドット単位です。 1 インチあたりのドット数は、プリンターの DPI によって異なります。 TEXT BARCODE BITMAP たとえば、プリンターが 203 DPI → 1 インチに 203 ドット、または 1 mm に 8 ドットがあることを意味します。 300 DPI → 1 インチに 300 ドット、または 1 mm に 11.8 ドットがあることを意味します。 これによると、高さ 10mm のバーコードを追加したい場合、プリンターが 203DPI の場合、高さを (10mm x 8 = 80 ドット) に設定する必要があります。 80 ラベルのサイズとギャップ 次のように、ラベルのサイズをプリンターに伝える必要があります。 SIZE 4,1 ここでは、ラベルのサイズは 4x1 インチであると述べました。 メートル法 (mm) で設定することもできます。 SIZE 50 mm,25 mm ラベル間のスペースであるギャップを設定できます ( )。 GAP m,n GAP 0,0 ここで、ギャップは 0 インチです。これは、連続したラベルであることを意味します。 文章 コマンドを使用して、ラベルにテキストを印刷できます。位置、フォント サイズ、回転などを指定できます。 TEXT TEXT x,y,“font”,rotation,x-multiplication,y-multiplication,[alignment,] “content” パラメータ 説明 x、y x および y 座標 フォント 通常、1 ~ 8 を設定できます (1 は小さい、2 は大きい… 8 は大きい)。 回転 時計回りに0、90、180、270 x と y の乗算 倍率 1 ~ 10 アラインメント 1-左、2-中央、3-右 (オプション) コンテンツ テキストの内容 サンプル コマンド 結果 TEXT 10,20,"1",0,1,1,"FONT 1" TEXT 10,70,"2",0,1,1,"FONT 2" TEXT 10,120,"3",0,1,1,0,"FONT 3" バーコード コマンドを使用して、ラベルにバーコードを追加できます。 BARCODE BARCODE X,Y,”code type”,height,human-readable,rotation,narrow,wide,[alignment,]”content” パラメータ 説明 x、y x および y 座標 コードタイプ 128、EAN128、EAN13… 身長 ドットの高さ 人間が読める 0 - バーコード値 (テキスト) は表示されません 1 - テキストは左揃え 2 - 中央揃え 3 - 右揃え 回転 時計回りに0、90、180、270 狭い ドット単位の狭い要素の幅 幅 幅の広い要素の幅 (ドット単位) アラインメント 1-左、2-中央、3-右 (オプション) コンテンツ バーコードの内容 サンプル コマンド: TEXT 10,10, "2",0,1,1, "Human readable alignment" BARCODE 10,50, "128",100,1,0,2,2,"left" BARCODE 310,50, "128",100,2,0,2,2,"center" BARCODE 610,50, "128",100,3,0,2,2,"right" 結果: PRINT および END コマンド ラベルを作成したら、ラベルを印刷する準備が整ったことをプリンターに伝える必要があります。 コマンドを使用してこれを行います。 PRINT m[,n] コマンド 説明 SIZE 50 mm,25 mm CLS TEXT 10,10, "2",0,1,1, "Text 1" PRINT 1 CLS TEXT 10,10, "2",0,1,1, "Text 2" PRINT 2 END - ラベルのサイズを設定 - バッファをクリア - テキストを追加 - バッファを一度印刷する - バッファをクリア - テキストを追加 - バッファを 2 回印刷する - プログラムの終了 3 つのラベルを印刷します。 「テキスト 1」の 1 つのラベルと「テキスト 2」の 2 つのラベル。 最後に コマンドを追加して、印刷が終了したことをプリンターに伝えます。このコマンドがないと、プリンターはバッファー内の最後のイメージを印刷しない場合があります。 END JavaScript(Node.js)で印刷する 生成されたコマンドは、シリアルまたは Bluetooth 経由でプリンターに送信できます。これを実証するために、Node.js を使用して簡単なコードを作成しました。 「 」パッケージを使用して接続し、コマンドを送信しました (Windows では、ドライバーをインストールする必要がある場合があります。 )。 usb 詳細については、パッケージのページを参照してください const usb = require('usb'); const cmds = [ 'SIZE 48 mm,25 mm', 'CLS', 'TEXT 10,10,"4",0,1,1,"HackerNoon"', 'BARCODE 10,60,"128",90,1,0,2,2,"altospos.com"', 'PRINT 1', 'END', ]; // you can get all available devices with usb.getDeviceList() let device = usb.findByIds(/*vid*/8137, /*pid*/8214); device.open(); device.interfaces[0].claim(); const outEndpoint = device.interfaces[0].endpoints.find(e => e.direction === 'out'); outEndpoint.transferType = 2; outEndpoint.transfer(Buffer.from(cmds.join('\r\n')), (err) => { device.close(); }); そして結果: この機能を プロジェクトに実装するとき、ラベルの印刷に関する情報を少しずつ収集する必要がありました。ですから、同じような状況にある誰かの出発点になることを願って、この記事を書きました。 Alto の POS & Inventory 戦争反対! ✋🏽