始めの言葉

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

2015年9月1日火曜日

HPT機能を使った印刷 - WSCSTについて-

"WSCST"(ワークステーション・カスタマズ・オブジェクト)とは、随分と長い名前ですが、OS/400 が印刷データを変換する時に参照するテーブル(対照表)のようなもので、ちょうど、プリンター・セッション経由(PDT 印刷)における PDF ファイルに相当するものです。PAGES モードのプリンター用のサンプルが、下記のサイトに、詳しい情報と共に掲載されていますので、ご参照ください。
http://www.ricoh.co.jp/pps/support/techinfo/dwgwscst_jp.html
PDF ファイルのように、使い方に合わせて編集するソース・ファイル
http://www.ricoh.co.jp/pps/download/txt/pages1_300.txt
の中をご覧いただくと、次のような箇所があります。
:INITPRT
      DATA ='1B7E010000'X                   /*初期化設定*/
            '1B7E0300013C'X                 /*行ピッチ設定6LPI */
            '1B7E02000132'X                 /*文字ピッチ設定10CPI */
            '1B7E5A000403AE0000'X.          /*コードページ変更942 */

この":INITPRT"で始まるこのブロックが、PDF ファイルの中の "START_JOB=" に該当します。
つまり、このサンプルでは、OS/400が変換した印刷データの先頭に、「初期化」「行ピッチ設定」「文字ピッチ設定」「「コードページ変更」コマンドを追加する指定となっています。
その他は、例えば
:ADDDRWTBL.
       :ADDDRWTBLE
           NUMBER = 3
           DATA = '1B7E4600050000030000'X.  /*用紙トレイ選択 第3*/
といったように、PRTF の中のドロワー(給紙トレイ)指定の各値を、PAGES モードのコマンドにどのように置き換えるかの指定だったり、
:ADDDRWTBLE
           NUMBER = 123                     /* B4縮小 縦*/
           DATA = '1B7E4600050000120000'X   /*用紙トレイ選択B4 */
                  '1B7E51000102'X           /*ページ様式設定 連→B4 */
                  '1B7E50000100'X           /*メディア座標原点 左上*/
                  '1B7E53000A00000000000000000000'X. /*論理原点 0, 0 */
といったように、ドロワーの値に"123"を指定すると、連続用紙サイズから B4 サイズに縮小し縦長に印刷する独自の設定を追加することができます。
もちろん、PRTF のパラメーターを活用できるようにまで WSCST を編集しなくても、":INITPRT" の中に指定のコマンドを追加するだけでも十分使用可能ですが、編集したテキスト形式のファイルをOS/400に送信して、CRTWSCST コマンドを使ってオブジェクトに変換しないとならない点が、PDF ファイルを PDT ファイルにコンパイルするよりも面倒かもしれません。
もっと簡単に使用するには、プリンターの初期設定(IP1000J PAGES モデルでは「PAGES 印刷条件」メニュー)で、縮小率や用紙方向を指定する方法でも良いわけです。

注意) IP1000J プリンター PAGES モデルでは、上記の":INITPRT" の指定では不十分で、実際に印刷させると、RPCS モードでのデータ・エラーが発生するという問題が発生しました。これは、プリンターが、PAGES モードに変換された印刷データを受信したにも関わらず、ドライバー印刷用の RPCS モードのデータと勘違いしてエラーになったのが、直接の原因です。そこで、印刷データの先頭にプリンターを PAGES モードに切り替えるコマンドを追加することで、この問題は回避できました。具体的には
:INITPRT
      DATA='1B7E12000111'X /* PAGES 選択     */
を追加しました。これはちょうど、PAGES 用の PDF ファイルの中の "START_JOB="の先頭にも
CDS EQU 1B 7E 12 00 01 11                       /* PAGES 選択     */
で定義された "CDS" があることと同じ原理です。

0 件のコメント:

コメントを投稿