5250エミュレータ

40. IBM iから直接印刷するには(2)

それではIBM iから直接印刷する方法はあるのだろうか?

IBM iにはUNIXと同じ LPR(=Line Pronter Daemon Procotol)という
  印刷のための通信手順(=プロトコル)が提供されていて
EBCDICからASCIIへの変換もサポートしている。
LPD(=Line Printer Daemon)をサポートしているプリンタであれば
  IBM iから直接LPRで印刷することができる。

Windowsでも Windowsを導入した時点でLPDは開始はされていないが
LPDを開始できる機能は持っている。

  WindowsにLPR送信するとWindowsはそれを受取って省略時のプリンタに
そのまま無変換で転送する。(プリンタ・ドライバは使わない)
つまりプリンタに直接LPRで送信するのと同じことになる。

それでは LPRでIBM iからの直接印刷は完全に実現できるのだろうか?

残念ながらそう簡単には解決できない。

プリンタ・セッションによってレーザー・プリンタに印刷データを
送っていたのは次の二つの理由がある。

(1)非5577系のレーザー・プリンタに印刷するための目的で
プリンタ・セッションを使っていた。

(2)専用用紙への印刷のために微妙な印刷の調整するために
プリンタ・セッションを使っていた。

…(1)の場合はLPRで置換えることができるだろうか?
LPRはあくまでもSCS印刷ストリームASCIIに変換して
文字列を印刷できるようにするため、という簡易な目的であるので

・APW罫線や倍角印字にはLPRは対応していない。

・外字印刷には対応していない。

   

・バー・コードやQRコード印刷などの特殊印刷には対応していない。

…などあくまでもただ印刷するだけの機能でしかない。

(2)の場合は印刷の調整のためにPDT(=Printer Definition Table:
   プリンタ定義テーブル)
という変換テーブルを使って印刷している。
LPRPDTに対応していないので LPRではこの(2)の印刷にも
対応することはできない。

よく複合機にも印刷できます、という触れ込みのソフトウェア製品が
あるがほとんどLPRを利用した製品と思って間違いない。
「印刷できます」という台詞は「印刷できる場合もある」という
のが正しい表現であって「すべてのIBM iのスプール」に対して
ということではない。

ここで早くも行き詰まったように見えるが次回からは
その解決方法を考えてみよう。