始めの言葉

「プリンターから印刷できて当たり前」と、ユーザーからもSIerからも軽視されがちなプリンターの世界ですが、実際にはお困りだったり、思ったような印刷結果が得られないまま我慢してお使いの皆様のために、今までの経験が役立てばと、このブログを立ち上げました。印刷の基本から、応用情報、問題の解決方法を情報発信すると共に、PDF化など、これからどうするかについても、ご相談に乗れれば幸いです。ご質問はコメントでお寄せください。
ラベル SNMP の投稿を表示しています。 すべての投稿を表示
ラベル SNMP の投稿を表示しています。 すべての投稿を表示

2016年1月31日日曜日

HPT機能を使った印刷 - 追加情報 -

1. 印刷部数の指定
"HPT機能を使った印刷 - LAN 直結印刷の基本"の回で、印刷部数の指定は可能とお話したのですが、そのための設定を""HPT機能を使った印刷 - リモートOUTQの作成"の回でお話していなかったので、ここでお話しします。
印刷部数を指定できるようにするには、リモートOUTQを作成する時に指定するパラメーターの中で、宛先オプション"DESTOPT"に"XAIX"を指定する必要があります。
何故、その指定が必要なのかは分かりませんが、OS/400 の動きとしては、IBM Knowledge Center では次のように説明されています。

>XAIX を指定した場合、 リモート印刷装置書き出しプログラムは、プリンターへの接続を開き、 データ・ファイルと制御ファイルの複数コピーを送信します。
宛先オプション"DSTOPT"の指定

LPR 印刷では、データ・ファイルと制御ファイルのセットをプリンターに送信することを、以前にお話ししたことがあると思いますが、それを思い出してこの説明を読むと、指定された印刷部数の数だけ繰り返して、データ・ファイルと制御ファイルのセットをプリンターに送信すると読み取れます。
つまり、プリンターに対してコピー部数を指定するコマンドを送信するのではなく、コピー部数分だけ繰り返して同じ印刷データを送信するという意味になります。

2. HPT機能を使った印刷の3番目の指定方法
OS/400 上で印刷データ形式を変換する HPT 機能を使って、PC を介さずに LAN 直結印刷する方法には、実はもう一つ、"IPP"を使った OUTQ を使う方法です。"IPP"は、Internet Printing Protocol の略で、Microsfoft社が提唱する印刷データ送信方式です。提唱されてから何年も経ちますが、普及したと言えるところまでは行っていないようです。
TCP/IP の世界の印刷プロトコルの一つであり、最新のものなので、OS/400 でもサポートしているものと思います。OUTQ を作るには、装置記述を作り、装置タイプに"3812"を選択する点では、以前お話した SNMP を使用する方式と良く似ていますが、使用するポートが 631、6310 である点が大きく異なります。
最も大きな特徴は、"セキュア接続"と言った暗号化に対応した接続が可能なことだと思います。
自分自身では、かなり以前に、あるお客様のご要望でその設定を経験したことがあるのですが、詳細に関しては、機会を改めたいと思います。

次回からは、LAN 直結印刷の本命として、Telnet5250E接続のお話をしたいと思います。

2015年9月22日火曜日

HPT機能を使った印刷 - コマンド変換機能の制約 -

PCOMM の PDT印刷では、PDT ファイルの定義に従って PCOMM のプリンター・セッションが、AS/400 から受信した印刷データの中の制御コードを、5577 形式や PAGES 形式に変換してプリンターに送信します。HPT 機能を使った LAN 直結印刷の場合も同様のコマンド変換を、OS/400 が行ないます。そのプログラムのソース・コードは共通という話を以前に聞いたこともあります。
ただ、実際には、両者の間には次のような違いがあります。

1. HPT 機能では、"AFP"プリンター用のデータを PAGES 形式に変換して、PAGES プリンターに印刷できますが、PCOMM 経由の印刷では対応していません。
"AFP"プリンターに関しては、AS/400 ユーザーのお客様では使用実績が多くないため、このブログでは触れませんので、ここで簡単にご紹介します。
InfoPrint4100


InfoPrint SP8200
"AFP(Advanced Function Presentation)"プリンターには、連続用紙対応の大型高速レーザー・プリンターや、カット紙対応の高速レーザー・プリンターがあります。高速印刷であることは、大量印刷を意味し、大量印刷であることは、ページ抜けや、重複ページの印刷の防止といった"印刷管理"機能を必要とす
ることを意味します。また、Windowsアプリケーションからの印刷のように自由な、文字の種類や大きさ、配置の印刷を、AS/400 から直接行なえるメリットがあります。
しかし、AS/400 にも対応する様々な"帳票ソリューション"(我がMapping Suiteもそうですが)が提供され、プリンターの状況監視も、TCP/IP の世界では"SNMP"プロトコルとそれに対応したツールが実現する今となっては、"AFP"の優位性も少なくなってしまったと言えるかもしれません。
リモートOUTQ の設定で、"メーカー・タイプ及び型式"に"*IBMPAGES300"を指定することで、印刷データが"AFP"プリンター用の場合は、OS/400 が、PAGES コマンドの中のイメージ送りコマンドに変換します。つまり、"AFP" のデータをイメージに変換して印刷する訳です。
この場合、LPR 印刷になりますから、本来の"AFP" プリンターで行なえたプリンターとの双方向通信による印刷管理はできません。プリンターの状態に関わりなく、印刷データを送信したら終了です。
2. "APW"やプリンター・ファイルで指定した次のパラメーターは、5577 形式や PAGES 形式への変換に制約があります。("APW"については、今後、機会を改めてご紹介します。)
  • "APW"のバーコード・パラメーター:PCOMM プリンター・セッションでは変換できません。HPT 機能を使った印刷では、"MRGAPW" の際の"DEVTYPE"に"*SCS"を指定し、HPT では "PAGES" モードへの変換を指定した場合のみ、変換されます。
  • 角丸付き罫線:PCOMM プリンター・セッション経由の場合は、"MRGAPW" の際の"DEVTYPE"に"*PAGES"を指定した場合のみ、HPT では "PAGES" モードへの変換を指定した場合のみ、変換されます。("DEVTYPE"は"*SCS"でも"*PAGES"でも共通)
  • 網掛け:PCOMM プリンター・セッション経由の場合は、"MRGAPW" の際の"DEVTYPE"に"*PAGES"を指定した場合のみ、HPT では "PAGES" モードへの変換を指定した場合のみ、変換されます。("DEVTYPE"は"*SCS"でも"*PAGES"でも共通)
  • 文字拡大(2 x 4 と 4 x 2): "DEVTYPE"で"*PAGES"を指定し、PCOMM プリンター・セッション経由の場合のみ変換されます。
  • 文字拡大(3 x 3):"DEVTYPE"で"*SCS"を指定し、HPT で "PAGES" モードへの変換を指定した場合のみ、変換されます。
  • 文字拡大(4 x 4):"DEVTYPE"で"*SCS"か"*PAGES"を指定し、HPT で "PAGES" モードへの変換を指定した場合のみ、変換されます。
上記以外の"APW"のパラメーターで通常使用されるものは、プリンター・セッション経由の印刷でも、HPT 機能を使った印刷でも変換されますので、コマンド変換で最も注意する必要のあるのは、バーコード・パラメーターになるのではないでしょうか ? 

2015年9月9日水曜日

HPT機能を使った印刷 - 簡単な双方向通信可能なOUTQを作る方式 -

前々回でお話ししたリモート OUTQ を作る方式は、単なる LPR 印刷なので、プリンターに対して印刷データを送信するだけの方式です。そのため、プリンターの電源が入っていなかったり、用紙切れが発生していても、それをエラーとして検知することはできません。今回、お話しする装置記述を作る方式では、TCP/IP の世界で定義された SNMP(Simple Netwrok Management Protocol)を使って、簡単なエラー状態を OS/400  が把握することができます。
注意 : 装置記述の作成は特殊権限が必要なので、ユーザーIDは、QSECOFR で行なってください。

1. 先ず、次の手順で装置記述を作ります。5250 端末画面で、"CRTDEVPRT"というコマンドを入力して F4 キーを押します。この画面で使用しているパラメーターは、次のようになります。
CRTDEVPRTを実行した画面-1
  • 装置記述 : 任意ですが、この名前はそのまま OUTQ の名前になります。(なお、ライブラリーは自動的に"QUSRSYS"になります。)
  • 装置クラス : "*LAN"が指定です。
  • 装置タイプ : "3812"が指定です。(余談ですが、3812 は1980年代中期に発表された英数データ用のページ・プリンターです。A4とレター・サイズの用紙に対応し、PCには"Proprinter"モードで接続し、他にホスト・システムにも接続可能なモデルでした。)
  • 装置形式 : "1"が指定です。

2. 実行キーを押して表示される画面で、"LAN接続機構"に"*IP"を指定してから実行キーを押すと、次の画面になります。パラメーターは次のように指定します。
CRTDEVPRTを実行した画面-2
  • ポート番号 : "9100"が指定です。
  • フォント 識別コード : "11"が指定です。
  • 用紙送り : 通常のカット紙用のレーザー・プリンターの場合は、"*AUTOCUT"が指定です。(連続用紙の場合は、"*CONT"になります。)
その下の"印刷装置エラー・メッセージ"が、デフォルトの"*INQ"の場合は、OS/400 にエラー・メッセージが通知され、メッセージ応答が求められます。"*INFO"に変更した場合は、エラー・メッセージが通知されるだけです。



3. パラメーターを入力したら、次ページの画面を表示します。"非活動タイマー"に"*SEC15"を指定してから実行キーを押すと、次の画面になります。
CRTDEVPRTを実行した画面-3
ここで重要なのが、"ホスト印刷の変換"です。"*YES"にすることで、OS/400 が印刷データを、その下の"メーカー・タイプ, 型式"で指定する形式の印刷データに変換して、接続先のプリンターに送信します。
"メーカー・タイプ, 型式"で F4 キーを押すと、前々回お話した、リモートOUTQ を作成する時と同じ選択肢が表示されます。
http://as400printhelp.blogspot.jp/2015/08/hpt-outq.html
ここでは、PAGES プリンター用として"*IBMPAGES300"を指定します。
なお、その下の"用紙入れ1、2"は給紙トレイ、"エンベロープ・ソース"は封筒用のトレイを意味しますが、まだ試してみたことがありません。

4. 次ページの画面ではパラメーターを次のように指定します。
CRTDEVPRTを実行した画面-4
  • リモート・ロケーション : プリンターのIPアドレスか、ホスト名を指定します。
  • システム・ドライバー・プログラム : これは"*IBMSNMPDRV"が指定です。この指定によって、OS/400 は、プリンターが"SNMP"の規格に従って把握している状態を知り、エラーの場合はエラー・メッセージを通知することになります。







5. 実行キーを押して装置記述が生成できたら、後は、"STRPRTWTR"コマンドを実行して OUTQ を使用可能な状態にします。

では、この OUTQ を使って印刷した場合、実際にエラーはどのように通知されるでしょうか ?
1. OUTQ "SP8200"のプリンターが、電源 OFF の場合
メッセージ : CPA3387 : (C R) 装置 SP8200 が使用できない
プリンターが電源OFFの場合

この後、プリンターの電源を入れて、"R"で応答すると、印刷可能になります。









2. OUTQ "SP8200"のプリンターが、用紙切れの場合
メッセージ : CPA405C : (C R) 装置 IP8200 の入力トレイに問題がある
プリンターが用紙切れの場合

この後、用紙を補給して、"R"で応答すると、印刷を再開します。
再開する開始ページを指定することはできませんが、プリンターの電源を切らない限り、プリンター内部のメモリーに保管されて印刷処理を待っているページから印刷再開しますので、問題は無いはずです。






3. OUTQ "SP8200"のプリンターが、用紙ジャムの場合
メッセージ : CPA404D : (C R) 装置 IP8200で用紙ジャムが起こった

この後、ジャムした用紙を取り除いてプリンターを印刷可能状態に戻して、"R"で応答すると、印刷を再開します。印刷開始ページを指定することはできませんが、プリンターの電源を切らない限り、プリンター内部のメモリーに保管されて印刷処理を待っているページから印刷再開しますので、問題は無いはずです。

2015年8月14日金曜日

HPT機能を使った印刷 - LAN直結印刷の基本 -

5577 や PAGES モードを持った PC 用のプリンターに印刷させる方法には、前回までお話したプリンター・セッション経由の印刷の他に、OS/400 の HPT(Host Print Transform, ホスト印刷変換)機能を使った方法があります。これは、プリンター・セッションで行なう文字コード変換(5577 系の場合は、EBCDIC -> S-JIS)と、制御コード変換(5577 系の場合は、SCS -> 5577形式)を、OS/400自体が行なうものです。そのため、かつてOS/400のバージョンが、V3R7 や V4 の頃には、HPT機能を使用して印刷させようとすると、他の業務系のアプリケーションの実行速度に影響が出るため、実使用に耐えないといったケースもありました。しかし今では、AS/400 自体の処理能力が大幅に向上した結果、最早そのような事例を聞くこともありません。そうなると、プリンター・セッション経由の印刷と比較して、PC の電源が入っていないと印刷できないといった制約が無い点で、この印刷方法を採用されるユーザーも多いようです。ここで、先ず HPT機能を使った印刷の特徴や注意点を整理すると次のようになります。
  • リモートOUTQを使う方式と、デバイス・タイプに"3812"を指定して装置記述を作り、そのOUTQを使う方式の2種類があります。
  • プリンター・セッション経由の印刷と違って、どちらの方式でも自動構成ではありませんから、リモートOUTQや装置記述は手動で作る必要がありますし、ライターも初めは手動で起動する必要があります。
  • 前者の方式の原理は"LPR印刷"になりますので、エラーも含めたプリンターの状態は、OS/400 側に送信されず、単にスプールを印刷データに変換して、プリンターに送信するだけになります。
  • その際、設定によっては印刷部数の指定は可能ですが、ページ範囲の指定はできません。(IBM のサイトにあるツールを導入すると可能になるようですが、IBM による保証が無いことと、ツール自体が古いものなので、OS/400 の最近のバージョンでも使用可能かは、私もテストしたことが無い点にご注意ください。)
  • 後者の方式では、現在の多くのプリンターの LAN カードが持っている SNMP(Simple Network Management Protocol) というプロトコルを使って、OS/400 はプリンターの状態を把握します。その結果、プリンターの電源Off、用紙切れ、用紙ジャムといったエラー状態が OS/400 上にメッセージとして表示されます。ただし、"メッセージ応答"としての、ページ範囲を指定した再印刷はできません。これは、スプールがプリンターの制御コマンドを使った印刷データに変換されると、OS/400 はページの境目を認識できなくなるからです。つまり、ページ範囲を指定した再印刷が可能なのは、SCS形式のスプール・データを(変換せずに)直結されたプリンターで印刷する場合だけということを意味しています。
  • スプール・データの中の文字に外字があった場合、プリンター・セッション経由の印刷では、その PC に保管されている Windows外字のイメージをプリンターに送信して印刷します。しかし、HPT 機能を使った印刷では、OS/400 上の外字イメージを使用します。"OS/400 上の外字イメージ"とは、OS/400上で稼働する"CGU(Character Generation Utility)"という外字作成ツールを使って、外字用の文字コードに対して登録する、24x24ドットと、32x32ドットのドット・パターンです。24x24ドットのパターンは、5577 系のプリンターに印刷する場合、32x32ドットのパターンは PAGES モードのプリンターに印刷する場合に使用します。外字を使用するお客様の場合は、必ず24x24ドットのパターンは作成しますが、32x32ドットのパターンまでは作成していない場合がほとんどです。32x32ドット・パターンは、初めから作ることももちろんできますが、24x24ドット・パターンを元に変換するメニューが、"CGU"に用意されていますので、これを使っていったん作成し、その後、ドットの構成を修正して、より品質の良い外字のドット・パターンにすることができます。
次回以降で、OUTQを設定する具体的な方法をご説明していきます。