RPG

258. 文字カラーを印字するには

会社にコピー機があれば恐らくはカラー対応でありコストはかかかるものの
カラー印刷も可能であるはずだ。
その昔、IBM の表示端末もカラーはなくモノクロであり
良く考えれば現在の 5250エミュレータでもあまりカラーは使われていない。

しかしカラー全盛の時代にあってモノクロだけの印刷物を社外に提出するわけにも
いかない。
PCでもカラー印刷を出力しているので IBM i での印刷もやはりカラー印刷が必要である。

DDS解説書を調べてみると DDSキー・ワードとして COLOR キー・ワードが
用意されているが COLORキー・ワードは AFP のみで使用できる、との但し書きがある。
DDSソースに COLORキー・ワードを SEUで入力してもエラーにはならないが
CRTPRTF で印刷装置ファイルを作成してみると、このキー・ワードは無視されるとの
警告メッセージが出力されてしまう。

しかし実は COLORキー・ワードは *SCS でも有効であり *SCSの仕様として
定義されている。それも IBM によって。
どういうことかとゆうと i5/OS ではなく z/OS (IBM 汎用機)の SCSの仕様として
定義されているのである。

 [表示属性(1バイト)] + [カラー属性(1バイト)]

を文字の先頭に埋め込んでやれば文字カラーを出力することができる。
後はそのプリンターが *SCS の文字カラー属性をキチンと認識して印刷してくれるか
ということに依存してくる。

ところで IBM i に直結した IBM *SCS プリンター〈多くは 5553型または5557型)
に印刷出力するのではなく PDF に変換して ASCIIプリンタに LPR などで
印刷するのであればPDFにカラー文字として変換できていれば、まちがいなくカラー文字を
印刷出力することができる。

SpoolライターVer5.0 では LPRドライバーを使ってIBM i と同じネットワーク内の
ASCIIプリンタに印刷出力することができる。

このとき PDF 変換も同時に指定しておけば *SCS の文字カラーもPDFの文字カラーとして
変換されて文字カラーを印刷することができる。

なお SpoolライターVer5.0 では CRTPRTFコマンドの代わりにSpoolライター Ver5.0
用意した CRTEXPRTFコマンドを使うと先に説明した *SCSの文字カラー・コードを
埋め込んでくれるので DDSで COLORキー・ワードを指定して文字カラーを印刷することができる。

      A                                  7  3' 黒色 '  
      A                                      COLOR(BLK)
      A                                  7 13' 青色 '  
      A                                      COLOR(BLU)
      A                                  7 23' 茶色 '  
      A                                      COLOR(BRN)
      A                                  7 33' 緑色 '  
      A                                      COLOR(GRN)
      A                                  9  3' ピンク '
      A                                      COLOR(PNK)
      A                                  9 13' 赤色 '  
      A                                      COLOR(RED)
      A                                  9 23' 空色 '  
      A                                      COLOR(TRQ)
      A                                  9 33' 黄色 '  
      A                                      COLOR(YLW)