先の「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 を指し示している。
② 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を開始しておく必要がある。
送信が完了したら WRKOUTQ
の 8=属性 で印刷装置タイプが *USERASCII
になっていることを確認されたし。