印刷ストリームには
1. IBM i印刷ストリーム(SCSおよびAFP)
2. Microsoft仕様の印刷ストリーム(MS-EMF)
3. プリンタ・メーカー仕様の印刷ストリーム
の3つの種類があります。
IBM i用の印刷ストリームにはSCSとAFPに2種類がありますが
現実には省略時はSCSとなりますので
SCSストリームだけと考えて差し支えありません。
さてプリンタに印刷するためにはプリンタ・メーカー用の
仕様に合った印刷ストリームに変換しなくてはなりません。
プリンタ・メーカはWindowsの印刷ストリームつまり
Microsoft仕様のストリームで印刷できるように製作しているわけではなく
自社独自の仕様がありMicrosoft仕様のストリーム(MS-EMF)から
自社の仕様のストリームに変換するためにプリンタ・ドライバと呼ばれる
ストリームの変換プログラムを提供しています。
Microsoft 印刷ストリーム -------(プリンタ・ドライバ)------>プリンタ
というわけでプリンタ・ドライバとは印刷ストリームの変換プログラムのことなのです。
IBM iの場合はプリンタ・セッションにPDT(=プリンタ定義テーブル)と呼ばれる
SCSからの変換テーブルがあり、これがプリンタ・ドライバの役目をしています。
SCS印刷ストリーム------( PDT テーブル )-------->プリンタ
さて、ここからですがIBM iからプリンタに向って直接印刷しようとすると
どのようにすればよいでしょうか?
次の2つの方法が考えられます。
1.SCSストリーム——->(プリンタ・ドライバ)——>プリンタ
2.SCSストリーム–>( PDT テーブル )–(LPR)——–>プリンタ
1.の方法はWindowsのプリンタ・ドライバに印刷ストリームを
送る方法です。
プリンタ・ドライバはどのようなプリンタにも用意されていますので
この方法であればすべてのプリンタに印刷できるはずです。
しかしこの方法を実現するにはプリンタドライバはMicrosoftの
印刷ストリーム(MS-EMF)しか受付けませんので
IBM iのストリーム(SCS)をMicrosoftのストリーム(MS-EMF)に
変換してやる必要がありります。
次に2.の方法はWindowsに配置していたPDTをIBM iに配置して
IBM iの中で各プリンタ用のストリームに変換してプリンタに
送る方法です。
ほとんどのプリンタはLPRをサポートしていますので
LPRで送信できるはずです。
ただしLPRをサポートしてしないプリンタには印刷できません。
ただしプリンタ・セッションがPDTを使って行っている変換方法を
解析して理解しなければなりません。
PDTのオブジェクト解析技術が必要になります。
PDTの仕様自体の公開はありませんので解析する技術力が必要になります。