SBPL専用フォーマット

概要

使用上の注意

以下の設定は、サトー社製のラベルプリンタを、 サトー社独自のSBPLプリンタ制御コマンド(エスケープシーケンス)を使って動作させる場合のものです。 サトー社製以外のプリンタには使用できません。 他社製プリンタにこれらを適用すると、最悪の場合プリンタ故障が起こる可能性があります。

SBPLコマンドを使う理由と制限

サトー社製プリンタを通常の「Windowsプリンタ」として使用する場合は、SBPLコマンドを使う必要はありません。 SBPLコマンドを使う最も大きな理由としては、プリンタの動作が遅い(ラベルの印刷速度が遅い) 場合です。 動作が遅い理由については各インターフェースの速度についてを参照してください。

SBPLコマンドを使うと動作は速くなりますが、Windowsプリンタとして使用する場合に 比較して、描画可能な内容に制限が出てきます。

長さの単位

通常のWindows設定と異なり、長さの数値はmmではなくドット(整数)となります。 したがって、同じSBPL対応プリンタであっても、そのDPI値によってある数値が別の長さを表します。

プリンタのセットアップ

サトー社のラベルプリンタに対してSBPLを使用する際の設定等については サトー社ラベルプリンタを参照してください。

コントロールセクション

コントロールセクションの開始は、「!control sbpl」でなければなりません。 さもなければSBPLとはみなされません。 ここに記述可能な内容は以下の通りです。

上述したオプションをすべて指定する場合の例を示します。

!control sbpl
 ejectCut = true
 debug = true
 useCopies = false

テンプレートセクション

要素

report

必ず必要なトップ要素です。 この要素のfontSize属性を設定することは、この要素自体には影響がありませんが、 子要素のデフォルトとすることができます。

cutUnitには、0から9999までの値を指定することができます。 同じラベルを複数部数印刷する場合に何枚単位でカット動作を行うかを指定します。 デフォルトは1です。カットさせたくない場合は0を指定します。 カット動作の制御を参照してください。

freeLayout

子要素を自由な位置に配置するレイアウトです。 この要素のfontSize属性を設定することは、この要素自体には影響がありませんが、 子要素のデフォルトとすることができます。

janCode

codeで指定されたJANコードを表現するバーコードを描画します。 その際に、position位置を左上とし、heightを高さとします。 幅は自動で決定されます。

text

string属性で指定された文字列をposition位置を左上とした位置から描画します。

width属性が指定されている場合は、最大描画幅をwidthとして、それをはみ出さないように折り返して 複数行として描画します。 さらに、maxLinesが指定されている場合は、その行数を超えないように描画を打ち切ります。 また、alignの値が"center"の場合は描画幅の中で中央揃え、"right"の場合は右揃えを行います。

共用属性

fontSize

文字描画に使用するフォントのサイズを指定します。 fontSizeはすべての要素に指定でき、指定されていない場合は上位の指定を継承します。 デフォルトは「16」です。 現在のところ、16あるいは24しか指定できません。 つまり、使用できるフォントサイズは「16*16」あるいは「24*24」です。

※SBPLプリンタコマンドでは、任意の大きさの文字を印字することはできません。

width

幅を指定します。

height

高さを指定します。

position

freeLayoutに子要素を置く場合に、その子要素の位置を指定します。 カンマあるいは空白で区切ったX位置、Y位置のペアとします。

position = "12, 45"

詳細説明

カット動作の制御

サトー社製ラベルプリンタのうち、カッタを持つものについてはその制御を行うことができます (カッタ機で無いものについては、指定しても無視されます)。

ラベル一枚ごとに用紙カットしたいとき

ごく普通のロール紙を使用する場合は、印刷するラベルの一枚ごとにカットされると便利です。 デフォルトでは一枚ごとにカットしますが、以下のような設定でも同じです。

!control
ejectCut = false
!template
<report cutUnit="1">
....

各ラベルでカットし、ジョブ終了時の排出カットは行わない指定です。

一つの印刷ジョブの最後にカットを行いたいとき

ロール紙にカット済みのシール式ラベルが貼り付けてあるような用紙の場合には、 印刷ジョブの最後にカットされると便利です。この場合には以下のようにします。

!control
ejectCut = true
!template
<report cutUnit="0">
....

各ラベルではカットせず、ジョブの最後に排出カットを行うという指定です。

一切のカットを行わないとき

カットを一切行いたくない場合は以下のようにします。

!control
ejectCut = false
!template
<report cutUnit="0">
....