IPP プリンター関連

31. IPP 印刷 (プリンターへの直接印刷)( IPP )

IPP のプロンプト画面

【説明】

IPPを使って、IPP対応ネットワーク・プリンタ/複合機に対して直接印刷を行います。

IPPは、Internet Printing Protocolの略で、コンピュータとプリンタとの間で印刷データをやりとりするための通信プロトコルです。 IPPは1999年、Windows 2000の頃に、それまでのLPRプロトコルを置き換えるものとして開発されました。 今ではほとんどのネットワーク・プリンタ/複合機がIPPに対応しています。

IPPを使うことで、それまでのLPRでは扱うことが出来なかった(あるいは、プリンタ毎に特殊な手続きが必要であった)下記のような動作が実現できます。

  • 用紙サイズの指定(A4 / B4 ...)
  • 給紙トレイの指定
  • 排紙トレイの指定
  • 両面印刷
  • ...

お使いのプリンタがIPPに対応しているかどうかは、「32. IPP プリンタPORTの検査」で確認が出来ます。

SpoolライターVer5.0は、IPP印刷を行う方法として、二種類を用意しています。

  • 1. CLコマンド SPOOLWTR/IPP を使って印刷する。

    RPG等でスプール・ファイルを出力した後、コマンド SPOOLWTR/IPP を実行することで、プリンタで印刷を行います。 SPOOLWTR/IPP は、コマンドラインから直接実行する他に、CLPに組み込んで自動実行することも可能です。

    → 本項をそのままご覧下さい。

  • 2. IPP印刷装置を使って印刷する。

    予め、OUTQにIPP印刷装置を割り当てておきます。そのOUTQにスプール・ファイルを作成すると、自動で印刷が行われます。

    33. IPP 印刷装置の作成をご覧下さい。

本項では、SPOOLWTR/IPPコマンドを使った印刷の解説を行います。

IPP コマンドは印刷スプール個別に印刷を指示しますので
IPP コマンドの利用はプリンターへの印刷テストか、または
印刷を実行する CLP に組み込んでの利用ということになります。

【例】
       PGM
       CALL   OBJLIB/MYPGM <-----(印刷を実行するプログラム)
       /*( IPPで複合機に印刷を指示する)*/
       IPP RMTIPADRES('192.168.1.1') SPLF(QPRINT) SPLNO(*LAST) PRTOPT(*PDF)
       PAGESIZE(*A4 *LANDSCAPE) DRAWER(*AUTO) DUPLEX(*NO) COPIES(1)  
       DLTSPLF FILE(QPRINT) JOB(*) SPLNBR(*LAST) 
       ENDPGM     
【パラメータの説明】
プリンターIPアドレス プリンターの IP アドレスまたはホスト名を指定します。
IPP はルーター経由の遠隔地のネットワーク・プリンターにも
印刷することができます。
スプール・ファイル 指定するプリンターへ送信する印刷スプールの名前を指定します。
ジョブ名 印刷ジョブのジョブ名(10桁)を指定します。
特殊ジョブ名「*」は、この自分自身のジョブを意味します。
ジョブ名が「*」と指定したときはユーザー名と番号は
指定する必要はありません。
印刷ジョブがバッチ・ジョブに投入されて実行されたものであれば
ジョブ名は QPRTJOB となる可能性があります。
ユーザー 印刷ジョブのユーザー名(10桁)を指定してください。
番号 印刷ジョブのジョブ番号(6桁)を指定してください。
スプール番号 印刷ジョブのスプール番号を指定してください。
特殊値「*LAST」および「*ONLY」を指定することができます。
*LAST とは実行ジョブの中の最後のスプール番号を意味し
同じスプール・ファイルが同一ジョブの中で複数個あった場合に
最後のものを選択することができます。
逆に「*ONLY」とは同一ジョブの中に同じスプール・ファイルは
唯一しか存在しないことを意味します。
したがって複数個の同じ名前のスプールがある場合は
*ONLY の場合はエラーとなります。
ジョブ名が QPRTJOB である場合は *LAST や *ONLY の特殊値は
指定することはできません。
出力オプション 出力するスプールの形式を指定します。
通常、*PDFを指定して下さい。
*PDF 印刷スプールは PDF に変換してプリンタに印刷指示されます。
APW罫線、倍角印字、バーコード、画像、
オーバーレイ印刷を印刷することができます。
*PDF では PDF 対応のプリンタや複合機への印刷に
限られますが、今では多くのプリンタや複合機が
PDF 印刷に対応していますので *PDF を
選択することが推薦されます。
用紙サイズ 用紙 複合機やプリンタで印刷に使用する用紙を指定します。(*A3, *A4等)
*SPLF であれば、プリンタにセットされている用紙に合わせて自動で拡大/縮小を行います。 通常、DRAWERによる給紙トレイ指定と同時に用います。 プリンタによっては、DRAWERを指定しなかった場合、エラーになります。
用紙方向 用紙の向きを指定します。
指定がない場合は水平方向(*LANDSCAPE)と見なされます。
*LANDSCAPE 水平方向
*PORTRAIT 垂直方向
ページ・サイズ 印刷するスプールの大きさを、行数/桁数で指定します。
文字の大きさ/余白の決定に使います。
*SPLF スプール・ファイル属性の長さ/幅を使用します。
*AUTO スプール・ファイルの中のデータを参照し、実際に使われている長さ/幅を自動計算します。
右や下に余白がある場合には、想定外の印字結果になる場合があります。
左寄せ/上寄せ/中央寄せ 用紙のどこに印字するかを決定します。
スプール・ライターは、スプールの内容が用紙一杯に印字されるよう、自動で拡大縮小を行います。 この拡大縮小は、アスペクト比を保ったまま行われますので、用紙とスプールの縦横比が異なる場合は、余白が生じる場合があります。
このときに、用紙内にスプールをどのように配置するかを指定します。
ページ・サイズに*AUTO以外を指定した時のみ、指定可能です。
余白(インチ) 余白を指定します。
ページ・サイズに*AUTO以外を指定した時のみ、指定可能です。
フォント 印刷に使用するフォントを指定します。
給紙トレイ 用紙をどのトレイから給紙するかを指定します。
トレイ名は、プリンタによって異なります。お使いのプリンタに定義されているトレイ名は、SPOOLWTR/DSPIPPAコマンドで調べることが出来ます。
排紙トレイ 印刷後の紙を、どの排紙トレイから排紙するかを指定します。
トレイ名は、プリンタによって異なります。お使いのプリンタに定義されているトレイ名は、SPOOLWTR/DSPIPPAコマンドで調べることが出来ます。
【追加のパラメータ】
ポート番号 IPPのポート番号を指定します。通常、変更する必要はありません。
両面印刷 両面印刷を行います。
*NO 片面にのみ印刷します。
*SHORT 用紙の短辺を折り返して裏面にも印刷を行います。 用紙の短辺をホチキス止めしたときに正しくなる向きで印字します。
*LONG 用紙の長辺を折り返して裏面にも印刷を行います。 用紙の長辺をホチキス止めしたときに正しくなる向きで印字します。
コピー枚数 印刷部数を指定します。省略時の値は 1 です。( 1部)
開始ページ 印刷を開始するページの指定があれば指定することができます。
省略時の値は *BEGIN です。
*BEGIN 最初の1ページから印刷を開始します。
終了ページ 印刷を終了するページの指定があれば指定することができます。
省略時の値は *END です。
*END 最後のページまで印刷を行います。
前面オーバーレイ 印刷時の動的なオーバーレイ印刷を指示することができます。
この指定は印刷オプションが *PDFのときのみに有効です。
オーバーレイ印刷の機能を使うと専用用紙の印刷を
画像イメージに変換してPDFとして印刷することができます。
その結果としてドット・インパクト・プリンターおよび
専用用紙を廃止することができます。

オーバーレイ印刷については別途、解説を参照してください。

使用例

下記例では、プリンタのIPアドレスは192.168.1.60とします。

A4横に印刷する

PAGESIZEキーワードで用紙サイズを指定します。

> SPOOLWTR/IPP RMTIPADRES('192.168.1.60') SPLF(QPRINT) JOB(*) SPLNO(*LAST)
PAGESIZE(*A4 *LANDSCAPE)

3番目の給紙トレイに入っているB4の紙を使って印刷する

まず、DSPIPPAコマンドを使って、給紙トレイ名を調べます。

> SPOOLWTR/DSPIPPA RMTIPADRES('192.168.1.60')

*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
   20/09/10                 プリンタIPP属性の表示                    
プリンタのIPアドレス・・・・・:192.168.1.60                         
プリンタのURL ・・・・・・・・:IPP://192.168.1.60:80/IPP/PRINT      
プリンタ名・・・・・・・・・・・:192.168.1.60                         
メーカー/型番・・・・・・・・・:FUJI XEROX DOCUCENTRE-VI C2264       
給紙トレイ:                                                           
     AUTO                                                                
     TRAY-1                                                              
     TRAY-2                                                              
     TRAY-3                                                              
     TRAY-4                                                              
     MANUAL                                                              
排紙トレイ:                                                           
     FACE-DOWN                                                           
両面印刷:                                                             
     TWO-SIDED-LONG-EDGE                                                 
     TWO-SIDED-SHORT-EDGE                                                
     ONE-SIDED                                                           

PAGESIZEキーワードに用紙サイズを、DRAWERキーワードに給紙トレイ名を指定します。

> SPOOLWTR/IPP RMTIPADRES('192.168.1.60') SPLF(QPRINT) JOB(*) SPLNO(*LAST)
PAGESIZE(*A4 *LANDSCAPE) DRAWER('TRAY-3')

32. プリンター PORT の検査 (CHKDEVPOT)

CHKDEVPOT画面

【説明】

プリンター PORT の検査 ( CHKDEVPOT ) とは装置の PORT に
サーバー・デーモンが起動されているかを検査します。
LPD を始めとして PORT 番号を指定すればプリンターだけでなく
様々な外部装置の PORT を検査することができます。

例えば IPP の PORT は 631番なので PORT = 631 を検査することによって、
そのプリンターや装置で IPP が起動しているかどうかを
検査することができます。

PORT 番号への接続が成功すれば次のようなメッセージが出力されます。

【例】
       IP アドレス :192.168.1.60, PORT 番号 : 631 の接続に成功しました。

プリンター PORT の検査 ( CHKDEVPOT ) によって、社内のプリンターや複合機に
LPD や IPPサーバー が起動されているかを調べることができます。

PORT番号 さえ指定すれば、他にも Ftp や Httpサーバー が
起動しているかどうかを調べることができます。
例えば社内の PC や PCサーバー、モバイル端末も調べることができます。
このように TCP/IP のアプリケーションが使う PORT番号 は、
概ね統一して決められておりこれらを

    Well-Known PORT (良く知られているPORT)

と呼びます。
CHKDEVPOT が検査できる Well-Known PORT は次のとおりです。

    *LPD :  525
    *IPP :  631
    *FTP :   21
    *HTTP :  80
    *SSL  : 443
    *SMTP :  25
    *TELNET  23 

33. IPP 印刷装置の作成 (CRTDEVIPP)

【説明】

IPP 印刷装置の作成 (CRTDEVIPP)は、IPP による印刷出力用の装置を
作成します。
作成された IPP 装置を使って STRPRTWTR で待ち行列に印刷を開始させると
指定した印刷待ち行列(OUTQ)に投入したスプールはすべて
自動的に IPP 装置によって指定された複合機またはネットワーク・プリンターに
印刷することができます。
IPP 装置は従前の IBM i での 5577系のプリンターに対して印刷装置を
CRTDEVPRT コマンドで作成するのとほぼ同じことです。

【パラメータの説明】
装置名 10桁以内の英文字より始まる装置名を指定します。

その他のパラメータは、SPOOLWTR/IPPコマンドと共通です。
トラブル・シューティングを行いやすくするために、まずSPOOLWTR/IPPコマンドでテスト印刷を行い、 パラメータが正しいことを確認した上で、印刷装置を作成することをおすすめ致します。

本コマンド実行後、36. IPP印刷装置のオンへの構成変更を行います。

35. IPP印刷装置の表示 (DSPDEVD)

DSPDEVD

【説明】

CRTDEVIPP : IPP印刷装置の作成で作成した装置の内容を
DSPDEVD によって確認します。
確認したい項目は次のとおりです。

IPL 時にオンライン
*YES IPL 後にオンに構成変更されることを意味します。
ユーザー 定義
ドライバー・プログラム
IPPDVR IPPドライバー( IPPDVR )が指定されていることを
確認します。
ライブラリー SPOOLWTR
リモート・ロケーション
名前またはアドレス
192.168.1.1 指定したプリンターのIPアドレスが
正しいことを確認してください。

36. IPP 印刷装置のオンへの構成変更 (WRKCFGSTS)

WRKCFGSTS

【説明】

CRTDEVIPP : IPP 印刷装置の作成によって IPP 印刷装置を作成した直後は
装置はオン( VARYON )にはセットされていません。
次回の IPL の直後にはオンに構成変更されるはずですが
今すぐ IPP 印刷をテストしたいのであれば装置をオンに変更する必要があります。
上記のプロンプト画面でそのまま実行キーを押すと次のような画面が
表示されます。

構成状況の処理の画面

ここで「1=オンへの構成変更」を選択すると装置はオンに変更されて
使用可能となります。
装置がオンに変更になったら

    STRPRTWTR DEV(IPPDEV) OUTQ(QGPL/IPPOUTQ)

のようにして印刷待ち行列( ここでは QGPL/IPPOUTQ )に対して
装置: IPPDEV をスタートさせると
OUTQ : QGPL/IPPOUTQ に投入された印刷スプールは装置: IPPDEV によって
該当のプリンターに送られて印刷されます。

この印刷の方法は従来の IBM i 直結の 5577系プリンターのときの印刷方法と
同じことです。
IBM i の馴染み深い方法でネットワーク・プリンターや複合機への印刷が
可能になったということになります。

トラブル・シューティングの方法

印刷が行われない等の問題が発生した場合の情報の取得方法を下記に示します。

  • 1. 操作員メッセージ待ち行列 QSYSOPR

    印刷装置で何らかの問題が発生した場合は、操作員メッセージ待ち行列 QSYSOPR にメッセージが出力されます。まず、ここを確認して下さい。

    印刷に失敗した場合は、下記のようなメッセージが出力されます。

    ファイルxxxxxxは,QUSRSYSの出力待ち行列xxxxxxxxxに書き出しプログ  
      ラム xxxxxxxによって保留された。
    
    このメッセージの前後に詳細なエラーメッセージが出力される場合がありますので、まず確認して下さい。

  • 2. プリンタの操作パネル

    スプールが保留されておらず、AS上は正常に印刷完了したことになっている場合には、プリンタにデータが正しく送信された後で、プリンタ側でエラーが発生している可能性があります。 プリンタの操作パネルでエラーの有無を確認して下さい。

  • 3. 印刷装置ジョブのジョブ・メッセージ

    まだ問題が解決しない場合は、印刷装置ジョブのジョブ・メッセージを下記手順で確認します。

    1. WRKACTJOBで、サブシステムQSPLを表示します。

    > WRKACTJOB SBS(QSPL)
    

    2. 印刷装置記述名がジョブ名になっているジョブに対して[5=処理]を実行します。

    3. [F17= 書き出しジョブ]を実行します。

    4. DSPJOBの画面になりますので、[10. ジョブ・ログ表示]を実行します。

    5. [F10= 詳細メッセージの表示] を実行します。詳細なログが表示されます。 問題が解決しない場合は、どのような症状が出ているかと、この画面の内容を添えて、弊社にお問い合わせ下さい。

OUTQ 印刷を使うときの IPP 印刷の詳細設定の考慮点

IPP 印刷とは複合機などに対して LPR のときよりも、より細かな指定ができることが
利点でした。

OUTQ と装置(印刷ドライバー)を使って連続的に印刷する場合は
IPP 独自の用紙、用紙の方向、用紙トレイ、両面印刷、印刷部数などの
印刷属性は印刷ファイル( PRTF )の属性によって決まります。

印刷属性は印刷ファイル作成( CRTPRTF )によって次のように
決まります。

印刷ファイルの作成 (CRTPRTF)
   CRTPRTF  OBJLIB/MYPRTF +
      両面印刷  . . . . . . . . . . .   *NO       <---------(両面印刷)
      ソース用紙入れ  . . . . . . . .   1         <---------(用紙トレイ)
      用紙タイプ  . . . . . . . . . . > *A4       <---------(用紙名) 
      コピー枚数  . . . . . . . . . .   1         <---------(コピー枚数)
拡張印刷ファイルの作成 (CRTEXPRTF)
   CRTEXPRTF OBJLIB/MTPRTF +
        用紙トレイ  . . . . . . . . . .   *AUTO
        両面印刷  . . . . . . . . . . .   *NO           *NO, *YES, *SHORT, *LONG
        用紙名  . . . . . . . . . . . .   *STD          文字値 , *STD, *A3, *A4...
        コピー枚数  . . . . . . . . . .   1             1-255        

上記の比較でおわかりのように CRTEXPRTF で印刷ファイルを作成するほうが
詳細設定がわかりやすくなります。

IPP ドライバーは実際は印刷ファイルではなくスプール・ファイルの属性を
取得して判断しています。

     スプール・ファイル属性処理

        用紙タイプ . . . . . . . . . . . . . . :   *A4
        両面印刷 . . . . . . . . . . . . . . . :   *NO
        合計コピー部数 . . . . . . . . . . . . :   1
        ソース用紙入れ . . . . . . . . . . . . :   1

従って実行時に OVRPRTF によってこれらの印刷属性を一時的に変更することも
可能です。

これらの設定は、印刷装置記述の設定内容に優先します。 スプール・ファイル属性で、上記設定をしていない場合は、印刷装置記述の設定内容に従って印刷されます。

36. IPP 印刷装置の削除(DLTDEVD)

DLTDEVD

【説明】

IPP 印刷装置( DEVD )を削除するのに使用します。

IPP 印刷装置を削除すると、それに対応する同じ名前の OUTQ も削除されます。
ただし その OUTQ の中にまだ印刷スプールが残っている場合は
OUTQ は削除されません。
従ってこのコマンドの実行する前には同じ名前の OUTQ の中身は
CLROUTQ コマンドによってすべてクリアしてから実行してください。