LPR コマンド

1. LPR 印刷 ( プリンターへの直接印刷 )(LPR)

【説明】

「LPR 印刷 (LPR)」は「LPR 印刷ライターの開始 (STRLPRWTR)」の内部で使用されている コマンドです。

「LPR 印刷 (LPR)」は定型業務で使用することは稀かも知れませんが
印刷待ち行列に LPRライターを関連づけたり、LPRライターを開始することなく、
スプールを指定して直接、プリンターに出力を行うことができます。
自社のプリンターを使ってLPR の動作を検証してみたり、
ある特定のスプールを今すぐ LPR を使って印刷したいときの処理に向いています。
パラメータの詳細は「LPR 印刷ライターの開始 (STRLPRWTR)」を参照してください。

【WSCソース】( Worksation Customized Source )
プリンターの制御を設定するための WSCソース
自社のネットワークに接続されているプリンターへ LPR を使って印刷するためには
そのプリンターに適合する印刷制御コードが LPR から送信されるようにLPR を設定しなければなりません。
Spoolライターの LPR の印刷制御コードは WSCソース(SPOOLWTR/QWSCSRC) の
ソース・メンバーとして登録しておいて利用することができます。
またこの WSCソース・メンバーは IBM の RTVWSCST コマンドを使って
ソースを生成することもできますし、
SEU を使って WSCソース・メンバーを登録/修正することができます。
ここでは自社のプリンターを制御するための WSCソースの使い方について解説します。
[印刷制御コード]とは
LPR は LPD をサポートしているプリンターとの通信を行うだけに過ぎません。
プリンターの印刷を制御するのはあくまでも、
プリンター・メーカーが独自に作成している「印刷制御コード」です。
Spoolライターがメーカーが指定する正しい「印刷制御コード」を
送信しなければ印刷は正しく行われません。
「印刷制御コード」の詳細はメーカー毎に異なることが普通であり
メーカーによって異なるため莫大な数の「印刷制御コード」が存在します。
従って株式会社オフィスクアトロは存在する、
すべてのプリンターへの印刷の対応や保証も行うことができません。
従って、例えば、
「うちのプリンター xxxx では LPR 印刷することはできません。どのようにすれば印刷できますか?」
というようなご質問を受けて回答したり対応することはできないことをご承知ください。
ワークステーション・カスタマイズド・ソース ( WSCS )
IBM は System i 上で各社のプリンターへ対応するために
*WSCST ( ワークステーション・カスタマイズド・オブジェクト ) というオブジェクトを用意しています。
*WSCST がどのような内容として定義されているかは RTVWSCST ( WSCST ソースの検索 ) で
*WSCST のソースを抽出することができます。
RTVWSCST (WSCST ソースの検索 ) コマンドによって抽出された WSCソースの例
-----------------------------------------------------------------------------
0001.00 :WSCST DEVCLASS=TRANSFORM.
0002.00
0003.00     :TRNSFRMTBL.
              :
0038.00     :INITPRT
0039.00       DATA ='1B7E0100001B7E0300013C1B7E020001321B7E5A000403AE0000'X.
0040.00     :RESETPRT
0041.00       DATA ='1B7E010000'X.
              :
0122.00     :PRTORIENT
0123.00       ORIENT=PORTRAIT
0124.00       DATA ='1B7E31000400002D00'X.  /* 用紙縦方向 */
0125.00     :PRTORIENT
0126.00       ORIENT=LANDSCAPE
0127.00       DATA ='1B7E3100042D005A00'X.  /* 用紙横方向 */
               :
-----------------------------------------------------------------------------
Spoolライターの LPR は WSCソースを参照する
Spoolライターの LPR は印刷制御コードを調べるために WSC ソースを参照します。
LPRの実行の例
---------------------------------------------------------------------------------
                               LPR 印刷  (LPR)

 選択項目を入力して,実行キーを押してください。
         :
         :
メーカー機種型式  . . . . . . .   QWSCSRC        名前
  ライブラリー  . . . . . . . .     SPOOLWTR     名前 , *LIBL, *CURLIB
メンバー  . . . . . . . . . . . > ESCPDBCS       文字値 , *NONE, XEROX...
---------------------------------------------------------------------------------
LPRの実行の例

この例ではソース・ファイル SPOOLWTR/QWSCSRC の
メンバー ESCPDBCS を参照するようにLPR に指定しています。
メンバー名は自由に指定することができますので
Spoolライターの LPR はユーザーで設定した
任意の WSCソースを参照することができるようになっています。

Spoolライターが参照する WSCソースのキー・ワード
Spoolライターは WSCソースの指定されたメンバーを参照しますが、
すべてのキー・ワードを処理するわけではありません。
Spoolライターが処理するキー・ワードは
  • 初期設定 ( INITPRT )
  • 用紙方向 ( PRTORIENT )
  • 用紙タイプ ( FORMTYPE )
の3つだけです。

初期設定 ( INITPRT )

【例】
:INITPRT
      DATA='1B3B7067312E'X.
【解説】

タグ名が :INITPRT のようにして :(タグ名) の形式で記述されます。
キー・ワードは DATA='1B3B7067312E'X. のようにして記述されます。
LPR は、この DATA='1B ... 'X. の値を
HEX値に組み立てて印刷制御コードとしてプリンターへ送信します。

用紙方向 ( PRTORIENT )

【例】
  :PRTORIENT
     ORIENT=PORTRAIT   /* 縦方向 */
        DATA ='40454A4C20534554204F5249454E544154494F4E3D504F5254524149540D0A'X.
  :PRTORIENT
     ORIENT=LANDSCAPE   /* 横方向 */
         DATA ='40454A4C20534554204F5249454E544154494F4E3D4C414E4453434150450D0A'X.
【解説】

:PRTORIENT タグは用紙の方向を定義しています。
ORIENT=PORTRAIT は縦方向であることを示しており、これに続く DATA='40 ....'X. が
縦方向を示す印刷制御データとして LPR によってプリンターへ送信されます。
ORIENT=LANDSCAPE は横方向であることを示しており、これに続く DATA='40 ....'X. が
横方向を示す印刷制御データとして LPR によってプリンターへ送信されます。
LPR コマンドにおいて次のように用紙方向を明示的に指定したときには
上記の用紙方向(PRTORIENT) に適合した DATA='.... 'X. の印刷制御コードが
LPR によって選択されて プリンターへ送信されます。

【LPRの実行の例】
 ---------------------------------------------------------------------------------
                                LPR 印刷  (LPR)

  選択項目を入力して,実行キーを押してください。
          :
          :

 ページ・サイズ :
  ページ・サイズ  . . . . . . . > *A4           *SPLF, *A3, *A4, *A5, *B4, *B5
  用紙方向  . . . . . . . . . . > *LANDSCAPE    *LANDSCAPE, *PORTRAIT
 ---------------------------------------------------------------------------------

用紙タイプ ( FORMTYPE )

【例】
  :FORMTYPE
    A3='1B3B7374302C61332E'X. /* 出力トレイ自動 A3 */
    A4='1B3B7374302C61342E'X. /* 出力トレイ自動 A4 */
    A5='1B3B7374302C61352E'X. /* 出力トレイ自動 A5 */
    B4='1B3B7374302C62342E'X. /* 出力トレイ自動 B4 */
    B5='1B3B7374302C62352E'X. /* 出力トレイ自動 B5 */
【解説】

:FORMTYPE タグが用紙タイプ( FORMTYPE ) を表すタグです。
用紙の名前: A3, A4, ... に応じたデータがプリンターへ送信されます。
ただし RTVWSCST コマンドによって この FORMTYPE タグが表記されることはありません。
ユーザーは必要があれば自社のプリンターの仕様を調べて
:FORMTYPE タグとして登録する必要があります。
:FORMTYPE タグを登録しておくと先のページ・サイズを指定するだけで
用紙に応じた印刷制御コードを LPR によってプリンターへ送信させることができます。
( 自社のプリンターの制御コードの調査や質問は保守契約のサービスの範囲外です。
お客様は別途に定める株式会社オフィスクアトロの有償サービスとして依頼することはできますが
保守サービスや製品の質問の対象外とさせて頂いております。)

【プリンター・メーカー別 WSC ソース】
IBM 系プリンター ( IBMPAGES )
IBM 系列のプリンターでは IBMPAGES と呼ばれる仕様の印刷制御コードが標準的に普及しています。
EPSON 系プリンター ( ESC/P ) ... Epson Standard Code for Printer
ESC/P とはセイコーエプソンが開発した印刷制御コードです。
初めは EPSON 系列のプリンターだけにサポートされていましたが、
その後に各社も採用するに至り、今では多くの国内プリンターがサポートしています。
XEROX 系プリンター ( XEROX )
複合機 XEROX 社 C4535 i/C3626 i/C2521 i/C4535 i/C3626 i/C2512 iへの対応の印刷制御コードです。
Spoolライターの LPR は 上記の XEROX 社の WSC ソースが同梱されています。
【Spoolライター提供のWSCソース】

Spoolライターには、始めから同梱されて提供される WSCソースがあります。

IBMPAGES IBMPAGES の WSCソースです。
ESCPDBCS ESC/P の WSCソースです。RTVWSCST コマンド から派生した WSCソースです。
ESCP ESC/P の WSCソースです。
XEROX 複合機 XEROX に対応した WSCソースです。
HPDBCS HP( ヒューレッド・パッカード社) の漢字対応の WSCソースです。
上記以外のWSCソースを指定するには ?

上記以外のプリンター・メーカーのプリンタをご使用中の場合は
次のように RTVWSCST : WSCST ソースの検索 コマンドによって
WSCソースを入手することができます。
( RTVWSCST は i5/OS のコマンドです。)

--------------------------------------------------------------------------------
                                 WSCST ソースの検索  (RTVWSCST)

  選択項目を入力して,実行キーを押してください。

  装置タイプ  . . . . . . . . . . > *TRANSFORM    *TRANSFORM, *CTXFORM, 3101...
  メーカー・タイプ,型式  . . . . > *NECP2200
  ソース・メンバー  . . . . . . .   NECP2200       名前
  ソース・ファイル  . . . . . . . > QWSCSRC        名前
   ライブラリー  . . . . . . . . . . . >   SPOOLWTR     名前 , *CURLIB, *LIBL
  テキスト ' 記述 ' . . . . . . .   NEC プリンター 2200

  ---------------------------------------------------------------------------------
【解説】

RTVWSCST + F4キーを押して装置タイプに「*TRANSFORM」と入力して
実行キーを押すとメーカー・タイプ , .... のパラメータが表示されます。
「メーカー・タイプ,型式」にカーソルをセットしてF4キーを押すと
プリンターの型式を検索することができます。

プリンターの型式は文字 * を先頭につけた * xxxxx のように表現されていますが
ソース・メンバー名には、文字 * を除去した同じ名前で
SPOOLWTR/QWSCSRC に登録してください。
LPR の実行時には、ここで追加した名前を指定すると、
そのプリンターに適合した WSC として印刷出力されます。
ただし WSCSTソースを抽出して作成しているのは IBM i 提供の RTVWSCST ですので
弊社が IBM の結果をコマンドの動作の結果保証するものではありません。
抽出した WSCSTソースでは動作は、お客様ご自身で検証され問題があれば
IBM へお問い合わせくださるようお願い申し上げます。
( 弊社がお客様に代わって IBM へ質問することはできません。)
本件への対応は保守サービスの範囲外とさせて頂いております。

※ 今、お使い中のプリンターが PDF印刷に対応しているのであれば
LPRの出力オプションを *PDF として指定して印刷すれば、
この WSCSTソースがなくても印刷することができます。
( *PDF を指定すれば WSCSTソースを指定する必要がありません。)

メーカー別のWSCソースのカスタマイズについて

抽出されたプリンタ・メーカー別のWSCソースをカスタマイズする必要がある場合があります。
例えば抽出されたWSCソースの用紙の方向が縦方向であるとき
横方向への指定へ変更したい場合などです。
これらのWSCソースの指定の方法はプリンタ・メーカーによって異なります。
WSCソースのカスタマイズの方法は各プリンタのメーカーまでお問い合わせください。

ゼロックス社の ESC/P の仕様はゼロックス社より有償で入手することができます。

【LPRの実行の例】
---------------------------------------------------------------------------
                               LPR 印刷  (LPR)

 選択項目を入力して,実行キーを押してください。
         :
          :
メーカー機種型式  . . . . . . .   QWSCSRC        名前
  ライブラリー  . . . . . . . .     SPOOLWTR     名前 , *LIBL, *CURLIB
メンバー  . . . . . . . . . . . > ESCPDBCS       文字値 , *NONE, XEROX...
---------------------------------------------------------------------------

このメーカー機種型式〜メンバーは WSCソース・ファイルとメンバー名を意味しています。

【パラメータの説明】
プリンター・サーバー IP プリンターのLPD の IPアドレスを指定します。
LPD がグローバルIP であればインターネット経由で
遠隔地のプリンターにも出力することができます。
スプール・ファイル 指定するプリンターへ送信するスプール・ファイルの名前を指定します。
ジョブ名 指定するスプール・ファイルを作成したジョブ名を指定します。
ここからスプール番号までの情報は WRKSPLF や WRKOUTQ によって検索することができます。
ユーザー名 指定するスプール・ファイルを作成したユーザー名を指定します。
番号 指定するスプール・ファイルを作成したジョブ番号名を指定します。
スプール番号 ひとつのジョブ毎のスプール番号を指定します。
メーカー機種型式,
ライブラリー,
メンバー
メーカー機種型式からメンバーまでは
WSCソース( Workstation Customized Source File )を指定します。
LPR は *NONE 以外の指定されたソース・メンバーを読み取って
そこに記述されている内容を2進数に変換して
プリンターへ印刷制御コードとして送信します。
代表的な次の印刷制御コードが製品によって提供されています。
XEROX XEROX 複合機用の印刷制御コードで ESCP の拡張版です。
XEROX の場合は印刷用紙の種類や
印刷の方向も指定することができます。
ESCPDBCS セイコー・エプソン社による ESC/P 仕様の印刷制御コードです。
国内では最も普及している印刷制御コードです。
ただし用紙サイズや用紙方向は指定することはできません。
印刷の前に予め手動の設定によって
これらを設定しておく必要があります。
HPDBCS 米国ヒューレッド・パッカード社による印刷制御コードです。
漢字にも対応していますが
動作確認を行われているわけではありません。
株式会社オフィスクアトロは上記のプリンターへの印刷を保証はしていません。
国内だけでも数限りないプリンターの種類があるため、
それらへの動作保証は行うことはできません。
各プリンターへの動作設定がご必要な場合は有償にて承っていますので
株式会社オフィスクアトロまでご相談ください。
出力オプション 印刷出力のために次の中からオプションを指定することができます。
*PRINT 印刷。通常印刷です。
メーカー機種型式にメンバーの指定があれば、
その指定された印刷制御コードがプリンターに送られます。
*IFS プリンターへ出力するのではなく出力イメージを IFS にストリーム・ファイルとして保管します。
*PDF PDF に変換してプリンターへ送信します。
PDF 変換が必要であるのは ESC/P を
サポートしていないプリンターへ印刷出力するためです。
*DEBUG デバッグ用の指定です。
印刷出力は印刷制御コードも含めて、
印刷イメージとともにIFS に保存します。
これによってどのようなコードが
プリンターへ送信されているのかを調べることができます。
用紙サイズ
(PAGESIZE)
出力オプション(PRTOPT)に*PDF を指定した場合には
印刷用紙のサイズを指定します。
*SPLF 用紙サイズはスプールのとおりとします。
印字内容が用紙1ページに満たない場合には、
用紙中央に中央寄せされて印字されます。
*CUSTOM 用紙サイズを詳細に指定することを指示します。
*A4 A4サイズに指定
*A5 A5サイズに指定
*LETTER レター・サイズに指定
*LEGAL リーガル・サイズに指定
用紙サイズに*SPLFを指定すると、
印字内容が用紙中央に中央寄せされて印字されます。
中央寄せではなく上詰めで印字したい場合は、
*SPLFの代わりに、*A4など、具体的な用紙を指定して下さい。
用紙方向 用紙サイズに *A4, *A5, *LETTER, *LEGAL のいずれかを
指定した場合には用紙の方向も合わせて指定することができます。
*LANDSCAE 用紙を横方向に印刷
*PORTRAIT 用紙を縦方向に印刷
ページ・サイズ
(FORMSIZE)
出力オプション(PRTOPT)が *PDF の場合に指定出来ます。
このページ・サイズの指定はSpoolライターのダイナミック・レイアウト
に任せるのではなく明示的に印刷サイズを指定したい場合にこの
パラメータで指定します。
*AUTO ダイナミック・レイアウトに任せます。
ページ・サイズはスプールすべての印刷ページの実体を
調べた結果の最適なフォント・サイズで設定されます。
*SPLF スプール・ファイル属性に設定されているページ・サイズに
従ってフォント・サイズが決定されます。
長さ 1 ページ当たりの行数を明示的に指定します。
スプール・ファイルの属性として設定されている
ページ・サイズは無視されます。
1 行当たりの文字数を指定します。
スプール・ファイルの属性として設定されている
ページ・サイズは無視されます。
測定方法
*ROWCOL ページの長さおよびページ幅は行数と
カラム数で測定されます。
*UIM UOM パラメータに指定しますが
この指定は指定しないでください。
※ページ・サイズを指定する目的は印刷結果の文字サイズをすべての印刷
結果で統一したものにしたい場合です。
通常のPDF出力ではSpoolライターのダイナミック・レイアウト機能に
よって出力したスプールの実際の印刷量によって最適なフォントが
決定されます。
従って同じプログラムによる印刷結果であっても印刷の情報量によって
フォント・サイズが異なってきます。
同じ帳票出力であればすべて同じ大きさのフォントに統一させたい
場合はページ・サイズを *SPLFまたは長さ、幅を明示的に
指定してください。
ただしPDFのフォント・サイズの最適化が失われますので不要な白紙
部分を生じる可能性があります。
左寄せ/上寄せ
(ALIGN)
用紙サイズに比べて、スプールを印字する範囲が小さい場合に、
用紙のどこに印字するかを指定します。
ページ・サイズ(FORMSIZE)が*AUTO以外の場合に指定可能です。
縦方向
*TOP 上下にスペースが空く場合、上詰めで印字します。
*MIDDLE 上下にスペースが空く場合、中央に印字します。
横方向
*LEFT 左右にスペースが空く場合、左詰めで印字します。
*CENTER 左右にスペースが空く場合、中央寄せで印字します。
余白(インチ)
(MARGIN)
用紙の余白をインチ単位で指定します。
プリンタによっては、指定した値よりも余白が大きくなる場合があります。
ページ・サイズ(FORMSIZE)が*AUTO以外の場合に指定可能です。