[ESX]シーケンス(2/2)

ESX シーケンスの拡張制御命令は、32種類あります。

上付き/下付き文字の解除([ESX] 0Eh 00h 01h 0Fh)

上付き文字または下付き文字の印字を終了します。
JIS
ESX 0Eh 00h 01h 0Fh
16進数
1Bh 7Eh 0Eh 00h 01h 0Fh
以降の文字は標準の大きさで印字されます。

1/2行逆改行([ESX] 0Eh 00h 01h 13h)

行バッファーのデータを印字し、現在の改行ピッチで1/2行上方向に移動します。
JIS
ESX 0Eh 00h 01h 13h
16進数
1Bh 7Eh 0Eh 00h 01h 13h
現在の改行ピッチが奇数ドットの場合、端数は切り捨てられます。また、TOF行を越える指定を行った場合はTOF行に移動します。

1/2行改行([ESX] 0Eh 00h 01h 14h)

行バッファーのデータを印字し、現在の改行ピッチで1/2行下方向に移動します。
JIS
ESX 0Eh 00h 01h 14h
16進数
1Bh 7Eh 0Eh 00h 01h 14h
現在の改行ピッチが奇数ドットの場合、端数は切り捨てられます。

イメージの3バイト転送モードの指定([ESX] 0Eh 00h 01h 15h)

縦方向3バイト(24ドット)のイメージデータ転送モードを設定します。
JIS
ESX 0Eh 00h 01h 15h
16進数
1Bh 7Eh 0Eh 00h 01h 15h
3バイト転送モードによるイメージデータの印字は次のようになります。
イメージデータの転送モードは、電源を入れた時点で3バイトに設定されます。
本制御命令は、イメージの印字命令ではありません。

イメージの2バイト転送モードの指定([ESX] 0Eh 00h 01h 16h)

縦方向2バイト(16ドット)のイメージデータ転送モードを設定します。
JIS
ESX 0Eh 00h 01h 16h
16進数
1Bh 7Eh 0Eh 00h 01h 16h
2バイト転送モードによるイメージデータの印字は次のようになります。
イメージデータの転送モードは、電源を入れた時点では3バイトに設定されます。
本制御命令は、イメージの印字命令ではありません。

強調印字の指定([ESX] 0Eh 00h 01h 17h)

以降の文字を強調印字します。
JIS
ESX 0Eh 00h 01h 17h
16進数
1Bh 7Eh 0Eh 00h 01h 17h
文字のドットを横方向にずらして太く強調させて印字します。ドットのずらし量は次のようになります。
展開時の解像度
8ポイントの文字
10ポイント以上の文字
300 dpi
1ドット
2ドット
600 dpi
3ドット
4ドット
強調するためにずらしたドットが右マージンを越えた場合、そのドットは右マージンを越えて印字されます。
本制御命令は、イメージデータには影響しません。

強調印字の解除([ESX] 0Eh 00h 01h 18h)

強調文字の印字を終了します。
JIS
ESX 0Eh 00h 01h 18h
16進数
1Bh 7Eh 0Eh 00h 01h 18h
以降の文字は標準の文字で印字されます。

アンダーラインの指定/解除([ESX] 11h 00h 01h)

アンダーライン印字の指定または解除を行います。
JIS
ESX 11h 00h 01h[印字モード(1バイト)]
16進数
1Bh 7Eh 11h 00h 01h[印字モード(1バイト)]
[印字モード(1バイト)]
アンダーラインの指定または解除を選択します。
また、空白をスキップするかどうかも指定します。
空白とは、スペース、水平タブ、水平方向の移動などによって現在印字位置から右方向へ移動した場合にできる範囲を指します。
それぞれの指定は、1バイトのパラメータの次のビットで行います。
アンダーラインの指定と解除(ビット0)
設定内容
0
アンダーラインの解除
1
アンダーラインの指定
空白の処理(ビット1)
設定内容
0
ブランク部分にもアンダーラインを引きます。
1
ブランク部分にはアンダーラインを引きません。
IBM5577(日本語モード)では、用紙の下端付近でアンダーラインを指定すると、文字とアンダーラインの間で改ページが行われることがありますが、I75モードでは、アンダーラインを印字する位置を含めて印字可能かどうかが判断されるため、文字とアンダーラインの間で改ページされることはありません。

重ね印字の指定/解除([ESX] 13h)

指定した文字コードを以降の印字データに重ねて印字します。重ね印字は本制御命令で解除するまで有効です。
JIS
ESX 13h<バイト数(2バイト)>[印字モード(2バイト)](文字データ)
16進数
1Bh 7Eh 13h <バイト数(2バイト)> [印字モード(2バイト)](文字データ)
<バイト数(2バイト)>
本パラメータ以降のバイト数を指定します。
設定内容
00h 03h
重ねる文字として1バイトコード文字(ANK文字)を指定できます。
00h 04h
重ねる文字として2バイトコード文字(漢字)を指定できます。
00h 01h
重ね印字の解除を指定できます。
「00h 01h」によって重ね印字を解除する場合は、[印字モード]の1バイト目に「00h」を指定します。「00h 02h」または「00h 05h」以上の場合、本制御命令は無効となり、本パラメータ以降のデータは指定数量だけ読み飛ばされます。
[印字モード(2バイト)] (2バイト目は任意の値)
重ね印字の指定または解除を選択します。
また、スペースに対して重ね印字を行うかどうかを指定します。
それぞれの指定は、[印字モード]の1バイト目の次のビットで行います。2バイト目は任意の値でかまいません。
重ね印字の指定と解除(ビット0)
設定内容
0
重ね印字の解除
1
重ね印字の指定
スペースの処理(ビット1)
設定内容
0
スペースに対しても重ね印字を行います。
1
スペースの場合は重ね印字を行いません。
(文字データ)
以後の印字データに重ねる文字コードを指定します。
<バイト数>で3バイトを指定した場合は、1バイトコード文字(ANK文字)を指定します。
(範囲:1バイトコード00h~FFh)
<バイト数>で4バイトを指定した場合は、2バイトコード文字(漢字)を指定します。
(範囲:2バイトコード00h 00h~FFh FFh)
重ねる文字と印字データの種類によって印字は次のようになります。
1バイトコード文字に2バイトコード文字を重ね印字する場合:
IBM5577(日本語モード)では2バイトコード文字の左側半分が印字されます。I75モードでは2バイトコード文字は正しく印字されます。ただし、1バイトコード文字の文字ピッチで移動するため、2バイトコード文字は重なって印字されます。なお、有効印字領域付近では、印字領域にかかる文字は印字されません。
重ね印字する文字コードが未定義の2バイトコードの場合:
IBM5577(日本語モード)では送られてくる印字データも印字しませんが、I75モードでは印字データだけを印字します。
重ね印字する文字が半角スペースだった場合:
印字データが2バイトコード文字のとき、IBM5577(日本語モード)では右側の半分だけが印字されますが、I75モードでは2バイトコード文字は印字されません。
縦書きモードの場合:
重ね印字する文字が2バイトコード文字のとき、IBM5577(日本語モード)では重ねる文字は横書きで印字されますが、I75モードでは重ねる文字も縦書きで印字されます。

水平タブ位置の設定([ESX] 18h)

水平タブ位置の設定または解除を行います。
JIS
ESX 18h<タブ数(2バイト)><タブ位置1(1バイト)>…<タブ位置n(1バイト)>
16進数
1Bh 7Eh 18h<タブ数(2バイト)><タブ位置1(1バイト)>…<タブ位置n(1バイト)>
<タブ数(2バイト)>
水平タブ位置の設定または解除を選択します。
水平タブを設定する場合は、設定するタブの数を指定します。
なお、タブ位置を初期状態(9文字目から8文字間隔の位置)にすることもできます。
設定内容
00h 00h(0)
すべての水平タブを解除します。
00h 01h(1)
<タブ位置1>に00hを指定すると、現在のANK文字ピッチで9文字目から8文字間隔でタブが設定されます。
タブ位置は文字ピッチに関係なく、137文字目までしか設定されません。
00h 01h(1) ~
00h 1Ch(28)
指定した数のタブ位置を設定できます。
ただし、タブ位置を1カ所として<タブ位置1>に00hを指定した場合は上記にしたがいます。
<タブ位置1(1バイト)>…<タブ位置n(1バイト)>
設定する水平タブ位置を現在のANK文字ピッチでの桁数で指定します。
タブ位置は第1文字目から昇順で最高28カ所まで設定できます。
タブの設定後に文字ピッチを変更しても、タブ位置は変化しません。
現在設定されている印字文字数を超えた位置を水平タブ位置に設定することはできません。
電源を入れたときの水平タブ位置は、文字ピッチ10cpiで9桁目から8桁(ANK文字8文字分)ごとに設定されています。
水平タブの指定が昇順でない場合、最初から昇順の部分だけが有効になります。同じ位置を続けて設定しても無効にはなりませんが、別々のタブとして数えられます。
左右マージンの外側に水平タブ位置を設定することができますが、実際に移動できるタブ位置はそのときの左右マージンの間になります。また、左マージン位置に設定されたタブ位置には移動できませんが、右マージン位置に設定されたタブ位置には移動できます。

垂直タブ位置の設定([ESX] 19h)

垂直タブ位置の設定または解除を行います。
JIS
ESX 19h<タブ数(2バイト)> <タブ位置1(1バイト)> … <タブ位置n(1バイト)>
16進数
1Bh 7Eh 19h<タブ数(2バイト)> <タブ位置1(1バイト)> … <タブ位置n(1バイト)>
<タブ数(2バイト)>
垂直タブ位置の設定または解除を選択します。
垂直タブを設定する場合は、設定するタブの数を指定します。
設定内容
00h 00h(0)
すべての垂直タブを解除します。
00h 0lh(1) ~
00h 40h(64)
指定した数のタブ位置を設定できます。
<タブ位置1(1バイト)>…<タブ位置n(1バイト)>
タブ位置はTOF行を1行目とした行数で指定します。昇順(下方向に向かって)で最高64カ所まで設定できます。
垂直タブ位置は現在の改行ピッチで設定されます。タブの設定後に改行ピッチを変更しても、タブ位置は変化しません。
垂直タブの指定が昇順でない場合、最初から昇順の部分だけが有効になります。同じ位置を続けて設定しても無効にはなりませんが、別々のタブとして数えられます。
垂直タブ位置をページ長を越える行に設定することもできますが、実際に移動できるタブ位置はそのときのページ長までの間になります。ただし、ページの最終行に設定されたタブ位置には移動できます。

左右マージンの設定([ESX] 1Ah 00h 02h)

左マージンおよび右マージンを、現在の印字領域の第1文字目を基準にしてANK文字単位で設定します。
JIS
ESX 1Ah 00h 02h<左マージン位置(1バイト)><右マージン位置(1バイト)>
16進数
1Bh 7Eh 1Ah 00h 02h<左マージン位置(1バイト)><右マージン位置(1バイト)>
<左マージン位置(1バイト)> <右マージン位置(1バイト)>
第1文字目からのANK文字数で左右マージン位置を指定します。
左右マージン位置は現在の文字ピッチで設定されます。
単位:
ANK文字数
範囲:
文字数の最大値は、メニューの「印刷幅」で設定した印字幅によって次のようになります。
各ページフォーマットの
領域モード
印字幅
文字数の最大値(180 dpi換算)
実寸モード(Fmode1/2)で
右マージン既定値=印刷幅
縮小モード(Fmode3~8)で
標準領域
13.2インチ
<文字数>×文字ピッチ(ドット)が2376ドット以下
13.6インチ
<文字数>×文字ピッチ(ドット)が2448ドット以下
8インチ
<文字数>×文字ピッチ(ドット)が2448ドット以下
実寸モードで用紙右端
縮小モードでワイド
(文字数)×文字ピッチ(ドット)が有効印字領域の右端以下
左/右マージンの関係は次のようになっています。
設定した左マージンと右マージンの差が0.5インチより小さい場合、または設定値が範囲外の場合は設定された左/右マージンが初期化されます。
また、左または右マージンに設定した値が0(00h)の場合、本制御命令は無視されます。

ミシン目スキップ行数の設定([ESX] 1Bh 00h 01h)

ミシン目スキップ行数を指定します。
JIS
ESX 1Bh 00h 01h <行数(1バイト)>
16進数
1Bh 7Eh 1Bh 00h 01h <行数(1バイト)>
<行数(1バイト)>
印字をスキップする領域の行数を指定します。
単位:
行数
範囲:
00h~FFh(0~255)
設定位置は現在の改行ピッチで指定します。
ミシン目スキップ行数の設定後に改行ピッチを変更しても、印字をスキップする領域は変化しません。
1ページの残り行数が本命令で指定された行数になると、自動的に改ページが行われ、ミシン目に印字がかかるのを防ぎます。
ミシン目スキップ行数とページ長の差が0.5インチ以下の場合、この制御命令は無視され、最後に設定した値が有効になります。
ページ長の設定([ESC] F)を受信した場合は初期設定の値に戻ります。ただし、新しいページ長とミシン目スキップ行数の差が0.5インチ以下の場合、この制御命令は無視されます。

水平方向への絶対移動/相対移動([ESX] 1Ch 00h 02h)

次の印字位置を、左マージン位置からの絶対移動量または、現在印字位置からの相対移動量にしたがって水平方向に移動します。
JIS
ESX 1Ch 00h 02h[移動モード(1バイト)] <移動量(1バイト)>
16進数
1Bh 7Eh 1Ch 00h 02h[移動モード(1バイト)] <移動量(1バイト)>
[移動モード(1バイト)]
左マージン位置からの絶対移動量で移動するか、現在印字位置からの相対移動量(左または右方向)で移動するかを指定します。
設定内容
00h
左マージンからの絶対移動量で移動します。
01h
現在印字位置からの相対移動量で右方向へ移動します。
02h
現在印字位置からの相対移動量で左方向へ移動します。
<移動量(1バイト)>
[移動モード]の指定に対応して次のように指定します。
左マージンからの絶対移動量で移動する場合
移動する量を、左マージン位置からの文字数で指定します。
単位:
ANK文字数(現在のANK文字ピッチ)
範囲:
01h~現在の右マージン位置
移動後の位置が右マージン上または右マージン位置を越えた場合や、移動量が0の場合、本制御命令は無視されます。
また、左マージン位置より左に移動することはできますが、第1文字目印字位置を越える位置を指定した場合、現在印字位置は第1文字目になります。
現在印字位置からの相対移動量で右方向へ移動する場合
現在印字位置から現在のANK文字ピッチで右方向へ移動する量を文字数で指定します。
単位:
ANK文字数(現在のANK文字ピッチ)
範囲:
メニューの印刷幅で設定した印字幅によって次のようになります。
各ページフォーマットの領域モード
印字幅
文字数の最大値(180 dpi換算)
実寸モード(Fmode1/2)で
右マージン既定値=印刷幅
縮小モード(Fmode3~8)で
標準領域
13.2インチ
<文字数>×文字ピッチ(ドット)が2376ドット以下
13.6インチ
<文字数>×文字ピッチ(ドット)が2448ドット以下
8インチ
<文字数>×文字ピッチ(ドット)が2448ドット以下
実寸モードで用紙右端
縮小モードでワイド
<文字数>×文字ピッチ(ドット)が有効印字領域の右端以下
移動後の位置が右マージン位置を越えた場合、自動改行されて続きの文字数の移動を行います。
現在印字位置からの相対移動量で左方向へ移動する場合
現在印字位置から現在の文字ピッチで左方向へ移動する量をANK文字数で指定します。
単位:
ANK文字数
範囲:
文字数の最大値は、「現在印字位置からの相対移動量で右方向へ移動する場合」と同じです。
左マージン位置より左に移動することはできますが、第1文字目印字位置を越える位置を指定した場合、現在印字位置は第1文字目になります。
移動後の位置が元の印字位置より左方向の場合は、行バッファーの内容を印字してから水平移動を行います。

垂直相対位置への移動(下方向)([ESX] 1Dh 00h 02h)

行バッファーのデータを印字し、現在の改行ピッチで現在印字位置から下方向に指定行数だけ移動します。
JIS
ESX 1Dh 00h 02h<移動量(2バイト)>
16進数
1Bh 7Eh 1Dh 00h 02h<移動量(2バイト)>
<移動量(2バイト)>
移動する行数を、現在印字位置からの改行数で指定します。
1バイト目は01hを指定し、2バイト目で行数を指定します。
単位:
行数(現在の改行ピッチ)
範囲:
01h~FFh(1~255)
移動時によって最終行に達すると、次のTOF行に移動し、残りの移動を行います。
設定した値がエラーの場合、本制御命令は無視されます。

文字の拡大/縮小指定([ESX] 20h 00h 03h 02h)

以降の文字の大きさを指定の倍率で拡大または縮小して印字します。
JIS
ESX 20h 00h 03h[横方向の倍率(1バイト)][縦方向の倍率(1バイト)]02h
16進数
1Bh 7Eh 20h 00h 03h[横方向の倍率(1バイト)][縦方向の倍率(1バイト)]02h
[横方向の倍率(1バイト)][縦方向の倍率(1バイト)]
縦方向と横方向の倍率を次の組み合わせで指定します。
横方向
縦方向
設定内容
印字
08h
08h
横1/2倍×縦1/2倍
10h
10h
横1倍×縦1倍(全角)
10h
20h
横1倍×縦2倍
20h
10h
横2倍×縦1倍
20h
20h
横2倍×縦2倍
設定した値がエラーの場合、本制御命令は無視されます。
842H-136