COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

8.5.3 外字の出力方法

<この項の構成>
(1) ユーザ定義文字の外字出力
(2) ベンダ定義文字の外字出力

(1) ユーザ定義文字の外字出力

ここでは,Windows上で作成した外字をESC/Pモード印刷機能でプリンタへ印刷する方法を説明します。

環境変数CBLP_ファイル名を設定すると,あらかじめプリンタに登録しなくても,Windows上で作成した外字を出力できます。なお,環境変数CBLP_ファイル名は,CLOSE文を実行するごとに環境変数の値が参照されます。

(a) 形式
 
CBLP_ファイル名=プリンタの外字コード〔,タイプフェイス名〕

ファイル名
SELECT句で指定したファイル名と対応させます。指定したファイル名の中にハイフン(-)があった場合には,下線(_)に置き換えた名称となります。

プリンタの外字コード
実行時に一時的に使用する,プリンタの外字領域のコードを指定します。プリンタの外字コードは,4けたの16進数で指定します。

タイプフェイス名
出力したい外字が登録されているフォントの,タイプフェイス名を指定します。指定を省略した場合は,「MS 明朝」が仮定されます。
(b) 出力の手順と例
  1. Windows上での外字の作成・登録
    Windowsの外字エディタなどを使って,外字を作成します。Windows上で作成した外字は,次のようなイメージで外字領域に登録されます。
    (例)
    タイプフェイス「MS Pゴシック」に関連づけて,コードX'F040'に「●」,コードX'F041'に「▲」という外字を登録した場合

    図8-1 Windows上で作成した外字の登録イメージ

    [図データ]
  2. 作業領域にするプリンタの外字コードの決定
    プリンタの外字領域の中で,一時的に外字を登録するコードを決めます。プリンタの外字領域と作業領域にする外字コードとの関係は,次のようになります。
    (例)
    プリンタの外字コードX'7721'を作業領域にする場合

    図8-2 プリンタの外字領域と作業領域にする外字コードとの関係

    [図データ]
  3. 環境変数の設定
    環境変数CBLP_ファイル名を使って,Windowsの外字コード,プリンタの外字コード,および出力ファイルを関連づけます。
    (例)上記(a)(b)の例の設定で,FILE01を出力する場合
     
    CBLP_FILE01=7721,MS△Pゴシック
    △は半角空白文字を表します。
  4. プログラムの実行
    プログラムを実行すると,次のようなイメージで,Windows上で作成した外字がプリンタに出力されます。

    図8-3 作業用のプリンタ外字コードを使用した外字印刷の流れ

    [図データ]

注意事項
ユーザ定義文字を外字として出力する場合の注意事項を,次に示します。
  • プリンタの外字コードに,出力先となるプリンタの外字領域コード以外を指定した場合,結果は保証しません。
  • プリンタの外字コードに4けたの16進数以外の値を指定した場合,エラーとなります。
  • Windowsで作成した外字は,関連づけられるタイプフェイスに登録してください。タイプフェイスに対して外字登録できないようなタイプフェイス名を指定した場合,外字の出力結果は保証しません。
  • タイプフェイス名に指定する文字列は,半角や全角の区別も含めて正しく指定してください。指定したタイプフェイス名が認識できなかった場合,エラーとなります。
  • タイプフェイス名を省略した場合,「MS 明朝」が仮定されます。ただし,「MS 明朝」のフォントがプログラムの実行する環境にない場合,エラーとなります。
  • あらかじめ,プリンタの外字領域に外字が登録されていて,その領域をプリンタの外字コードとして指定した場合,その登録内容は保証しません。
  • 印刷時に,プリンタの仕様に合わせて外字のサイズが変更されます。そのため,外字のビット情報が一部欠落する場合があります。

(2) ベンダ定義文字の外字出力

ここでは,ベンダ定義文字を外字として印刷する方法を説明します。

環境変数CBLPRTEXCHRを設定すると,あらかじめプリンタにベンダ定義文字を登録しなくても,ベンダ定義文字を出力できます。

形式
CBLPRTEXCHR=ベンダ定義文字種別〔:ベンダ定義文字種別…〕
ベンダ定義文字種別
外字として印刷するベンダ定義文字の種別を指定します。複数のベンダ定義文字種別を指定する場合は,コロン(:)で区切ります。
環境変数CBLPRTEXCHRに指定するベンダ定義文字の種別を次に示します。

表8-2 環境変数CBLPRTEXCHRに指定するベンダ定義文字の種別

環境変数に指定する
文字列
種別 コード範囲
上位バイト 下位バイト
BND1 Windows特殊文字 (87)16 (40)16〜(FC)16
BND2 NEC選定IBM拡張文字 (ED)16〜(EE)16 (40)16〜(FC)16
BND3 IBM拡張文字 (FA)16〜(FC)16 (40)16〜(FC)16

注※ (7F)16を除きます。


注意事項
  • 環境変数CBLPRTEXCHRに上記以外の文字列を指定した場合,実行時エラーとなります。
  • 環境変数CBLPRTEXCHRは,環境変数CBLP_ファイル名を指定しているときに有効となります。
  • 環境変数CBLPRTEXCHRで指定したベンダ定義文字に対して,コード範囲中にある文字コードはすべて外字として印刷します。未定義の文字コードを外字として印刷した場合,印刷結果は保証しません。
  • 外字としてベンダ定義文字を印刷した場合の印刷結果は,同じベンダ定義文字を通常の2バイト文字として印刷した印刷結果に比べて,文字の一部が欠けたり,曲線が滑らかにならなくなったりすることがあります。