TCP/IP

21. EBCDICのスプール・ファイルを ASCII に変換するには?

先の「LPR を使ってスプールを直接、印刷するには?」で LPR について理解して頂けたら、
今度は更に高度な LPR の使用方法を紹介しよう。
この方法はどこにも紹介されていないテクニックである。
ここではiSeries400 の EBCDIC の *SCS*AFP の印刷ストリームをiSeries400内で ASCII の印刷ストリームに変換する方法を紹介する。

*AFP を ASCII印刷ストリームに変換するAPI は「QWPZTAFP」が用意されているが
*SCS の変換API は公開されていない。
実はLPRの内部では ホスト変換API (HPT) を使用しており、このAPI(QwpzHost Print Transform) はV3R2M0, V3R7M0 では API として存在していながらも「システムAPI解説書」
には掲載されていない。
それは、このAPIの使用方法がかなり難解であり、解説に大幅なページ数を必要とするから
ではないだろうか?
このホスト変換APIは「Spoolライター Ver3.0」に使用されているが、完全稼動までには
かなり困難を極めた。

前書きが長くなってしまったが、もっと簡単にLPRを使って ASCII印刷変換を実現する方法を紹介しよう。
「Spoolライター」のような製品を開発するのでなければこの方法で十分である。

@ ローカル・ホスト名を確認する。

CFGTCP + (実行キー)10.TCP/IP ホスト・テーブル項目の処理「LOCALHOST」という名前が定義されていることを確認する。
この「LOCALHOST」という名前が自分自身のiSeries400 を指し示している。

A LPR で LOCALHOST に送信を指定する。
     
                             TCP/IP スプール・ファイル の送信  (LPR)                
                                                                            
      選択項目を入力して,実行キーを押してください。                        
                                                                            
      遠隔システム  . . . . . . . . . > LOCALHOST                           
                                                                            
                                                                            
                                                                            
      印刷装置待ち行列  . . . . . . . > QGPL/QPRINT                         
                                                                            
                                                                            
      スプール・ファイル  . . . . . . > QPRINT         名前                 
      ジョブ名  . . . . . . . . . . . > DSP01          名前 , *             
        ユーザー  . . . . . . . . . . >   QUSER        名前                 
        番号  . . . . . . . . . . . . >   045533      000000-999999         
      スプール・ファイル番号  . . . . > 1             1-9999, *ONLY, *LAST  
      宛先タイプ  . . . . . . . . . .   *OTHER        *AS400, *PSF2, *OTHER 
     SCS から ASCII への変換  . . . .   *YES          *YES, *NO             
      メーカーの機種型式  . . . . . . > *IBMPAGES                           
      インターネット・アドレス  . . . >
 
【 解説 】

つまり自分自身へ ASCII変換して送信するのである。
送信前には STRTCPSVR *LPD によって LPDを開始しておく必要がある。
送信が完了したら WRKOUTQ8=属性 で印刷装置タイプが *USERASCII になっていることを確認されたし。