Access Client Solutions(ACS)のPDT印刷で改ページ位置がずれる
Question
今まで利用していたIBM i Access for Windows(以下、iAW)からWindows10対応のIBM i Access Client Solutions(以下、ACS)に変えました。
プリンターセッションを作成して、ドットプリンターの連続用紙にPDTファイルを使用して印刷しています。
PDTファイルは、iAWで使用していたPDTファイルをマイグレーションしました。
プリンターは同じ5577を使用しています。
セッション起動後の最初の印刷は問題ないのですが、次の印刷から改ページ位置が正しくありません。
汎用用紙サイズで改ページされているようです。
iAWのプリンターセッションではこのような現象は起きず正しく帳票サイズで改ページしていました。
Answer
まず、IBM i (AS/400)からどのようにスプールデータが送られるかを説明します。
IBM i (AS/400)からは初回印刷時、スプールデータと書式情報を合わせて送ります。
IBM i (AS/400)は最後に送った書式情報を記憶していて、連続して同じ書式のスプールを送る場合、プリンターに書式情報を送りません。
今回の現象は、この書式情報が送られない時の、プリンターセッション側の振る舞いの違いによるものです。
iAWとACSで印刷方式が異なっています。
iAWでは、IBM i (AS/400)と同様、プリンターに書式情報を送りません。
結果、プリンターは前回印刷した情報と同じ書式で印刷されます。
一方、ACSではIBM i (AS/400)から書式情報が送られてこない場合、PDTファイルの書式情報を読み込み印刷を行います。(PDTの初期値は1ページ66行)
結果的に、66行以外の印刷物でも、66行で改ページされてしまう現象が起こります。
プリンターがIBM i (AS/400)プリンターセッション専用ではなく、PCからの印刷も同時に行われる場合、iAWのこの方式でも問題がありました。(途中PCからの印刷が入ると、次のIBM i (AS/400)からの印刷は、前回のPCからの印刷設定のまま行われてしまいます。)
この現象を回避するために、iAWでは、プリンターセッションのWSファイルに、"UseDefault=Y"という記述を追加して、PDTファイルのデフォルトの書式を使用するということを意図的に指定することが可能でした。
iAWではオプションで追加可能なこの"UseDefault=Y"の機能が、ACSでは最初からこの振る舞いをするようになっています。
ご質問の現象を回避するために、"UseDefault=N"にしたいのですが、ACSでこの構文は使用できません。
かわりに別の方法があります。以下の手順をご覧ください。
ACSで、Usedefault=Nのように動かすために、以下の手順でPDTを変更します。
(.WSではなく、.PDFを編集します)
以下、PDTが、5577.pdtであるものとして説明しています。
- ibm5577.pdfをメモ帳等で開きます。
Session Parametersセクションに以下を追加します。
INHERIT_PARAMETERS?=YES
最後の"?"も必要です。
- ibm5577.pdfを保存します。
セッション管理機能より ツール -> PDTコンパイラを選択します。
PDFの選択で保管したibm5577.pdfを選択し、説明にPDTの名前を入れ、OKボタンで作成します。
プリンターセッションで名前をつけた新たなPDTを使用して印刷を試します。
このパラメーターは、iAWで使用されていた、"UseDefault"に相当します。
"INHERIT_PARAMETERS?=YES" は "UseDefault=N"に相当し、設定が無い場合は、"UseDefault=Y"と同等の振舞いをします。
以上で変更した、PDTファイルを使用して印刷をお試しください。
※ 途中PCからの印刷が入ると、次のIBM i (AS/400)からの印刷は、前回のPCからの印刷設定のまま行われてしまう、という制限が残ることはご理解ください。
by 杜