8.5.4 ESC/Pモード印刷を利用したプリンタへの出力例
ESC/Pモード印刷機能を利用したプリンタへの出力例を説明します。はじめに,ご利用のプリンタでESC/Pモード(AXモード)が使用できるか確認してください。
(1) プリンタの設定
印刷前のプリンタの設定手順を示します。
-
プリンタをESC/Pモードで動作させる。
-
Windowsのプリントマネージャで,ESC/Pモードのプリンタを使えるように設定する。
また,ESC/Pモードで詳細な帳票設計をする場合,プリンタの仕様をあらかじめ調べておく必要があります。詳細は,ご利用のプリンタのマニュアルを参照してください。
(2) 文字列の出力
文字列を出力する例題について説明します。
(a) プリンタの仕様
この例題で想定するプリンタの仕様を次に示します。
項目 |
値 |
|
---|---|---|
フォント |
ANK文字 全角漢字文字 半角漢字文字 |
Roman 明朝 明朝 |
文字幅 |
ANK文字 全角漢字文字 半角漢字文字 |
10CPI(Character Per Inch) 24ドット 12ドット |
文字スペース量 |
ANK文字 全角漢字文字 半角漢字文字 |
左:0ドット,右:0ドット 左:0ドット,右:2ドット 左:0ドット,右:3ドット |
(b) プログラミング例
文字列'HITACHI'を出力するプログラム例を次に示します。
- 文字列を出力するプログラミング例
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. *********************************************************** * 文字列 'HITACHI'を出力する * *********************************************************** ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT S-F1 ASSIGN TO 'SYSPRT' ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD S-F1. 01 S-R1 PIC X(132). WORKING-STORAGE SECTION. 01 T-HITACHI PIC X(7) VALUE 'HITACHI'. PROCEDURE DIVISION. OPEN OUTPUT S-F1. * MOVE T-HITACHI TO S-R1. WRITE S-R1 AFTER ADVANCING 1. * CLOSE S-F1. STOP RUN.
(3) 下線を設定した文字列の出力
(2)で説明したプログラム例に機能コードを設定することで,出力文字列に下線を設定できます。
(a) プリンタの仕様
「表8‒3 プリンタの仕様」と同様の仕様です。
(b) プログラミング例
文字列'HITACHI'に下線を設定して出力するプログラム例を次に示します。
印刷結果は'HITACHI'となります。
- 文字列に下線を設定して出力するプログラミング例
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE2. *********************************************************** * 文字列 'HITACHI'に下線を設定して出力する * *********************************************************** ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT S-F1 ASSIGN TO 'SYSPRT' ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD S-F1. 01 S-R1 PIC X(132). WORKING-STORAGE SECTION. 01 T-OUTDATA. 02 T-SET-UNDER PIC X(3) VALUE X'1B2D01'. …1. 02 T-HITACHI PIC X(7) VALUE 'HITACHI'. 02 T-NON-UNDER PIC X(3) VALUE X'1B2D00'. …2. PROCEDURE DIVISION. OPEN OUTPUT S-F1. * MOVE T-OUTDATA TO S-R1. WRITE S-R1 AFTER ADVANCING 1. * CLOSE S-F1. STOP RUN.
-
下線設定の機能コード
-
下線解除の機能コード
(4) 文字幅を整えた文字列の出力
ESC/Pモードで,全角文字と半角文字が混在する帳票を出力する場合,全角文字と半角文字の文字幅が1:1/2で出力されないことがあります。例えば,同じバイト数の行でも,長さが異なる印刷結果となることがあります。これは,利用するプリンタの印刷文字の幅の仕様によるものです。
印刷文字の幅を整えるには,プログラム中でESC/Pの機能コードを出力レコードに埋め込みます。なお,文字幅とESC/Pの機能コードについては,ご利用のプリンタのマニュアルを参照してください。
(a) プリンタの仕様
この例題で想定するプリンタの仕様を次に示します。
項目 |
値 |
|
---|---|---|
文字幅(180dpi) |
ANK文字 |
18ドット(18/180インチ) |
漢字全角文字 |
24ドット(24/180インチ) |
|
漢字半角文字 |
12ドット(12/180インチ) |
(b) プログラミング例
漢字全角文字の文字幅とANK文字の文字幅の比率を1:1/2に調整します。データの出力後は文字幅を元に戻します。
プログラムで使用する引数を次に示します。
-
PUT-DATA:出力データ名
-
PUT-LEN:出力データ長
文字幅を調整するプログラム例を,次に示します。
- 文字幅を調整するプログラミング例
WORKING-STORAGE SECTION. 01 P PIC 9(4). 01 SI-CODE PIC X(4) VALUE X'1C530606'. …1. 01 EI-CODE PIC X(4) VALUE X'1C530003'. 01 ICODE-LEN PIC 9 VALUE 4. LINKAGE SECTION. 01 PUT-DATA PIC X(80). 01 PUT-LEN PIC 9(04). PROCEDURE DIVISION USING PUT-DATA PUT-LEN. OPEN OUTPUT S-F1. * CODE-CONV SECTION. * * Pは,出力領域の転送先ポインタ MOVE 1 TO P. MOVE ALL SPACE TO S-R1. * * 漢字全角文字の文字幅を補正する MOVE SI-CODE TO S-R1(1:ICODE-LEN). ADD ICODE-LEN TO P. * * 出力データをそのまま転送 MOVE PUT-DATA(1:PUT-LEN) TO S-R1(P:PUT-LEN). ADD PUT-LEN TO P. * * 漢字全角文字の文字幅を元に戻す MOVE EI-CODE TO S-R1(P:ICODE-LEN). WRITE S-R1 AFTER ADVANCING 1. *--- 終了処理 ---* CLOSE S-F1. EXIT PROGRAM.
-
漢字の全角文字スペース量
左スペース量:6ドット
右スペース量:6ドット