始めの言葉

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

2016年6月11日土曜日

連続用紙への印刷から、カット紙への印刷に移行する -第13回 PDFダイレクト印刷における印刷制御-

事前印刷された連続用紙への印刷をカット紙への印刷に切り替えることの目的が何だったかを思い出してみると、その一つには、コスト削減がありました。生成された PDF ファイルを直接、プリンターや複合機に印刷させる際に、両面印刷で行なうことは、コスト削減の有効な手段になりますし、その際に、最後にプリンターの後処理機構でステープル止めを行なったり、1ページ目だけは色紙を使って片面印刷を行なえば、印刷後の仕分けを楽に、正確に行なえるようになり、業務の効率化にも繋がります。
PDF ファイルを"Adobe Reader"で開いて、プリンター・ドライバーを使って印刷するという、人手によるオペレーションでは、ドライバーのプロパティ画面で、そのような設定を行なうことができます。(もちろん、プリンターの持っている機能に依存しますが)
しかし、AS/400 上で Mapping が PDF ファイルを生成し、それを OUTQ を通して LAN 直結されたプリンターに直接印刷させる場合には、そのような設定を指定する場所も、タイミングもありません。
そこで、出てくるのが"PJLコマンド"です。PJLコマンドについては、今まで2回、簡単にお話したことがありますが、今回はもう少し実践的なお話をしたいと思います。
使用するプリンターが、どのようなPJLコマンドをサポートしているか、それがPDFダイレクト印刷の制御に使用できるかどうかは、正式には、プリンター・メーカーに問い合わせて仕様書等を入手する必要がありますが、ここでは、希望する制御に対応したPJLコマンドを簡単に調べて、実際に有効かどうかを調べるための手順をお話します。
考え方は簡単です。ご自分の使用するプリンターや複合機の、Windowsプリンター・ドライバーのプロパティ画面で設定できる様々な機能は、実は、そのまま、そのプリンターの持っているPJLコマンドが対応しています。そこで、プロパティを変更する前と後の印刷データを比較することにより、ドライバーから発行される、どのPJLコマンドがその機能に対応しているかを見つけ出すという考え方です。
ただし、そのPJLコマンドは、Windowsからのドライバー印刷が前提のものですから、全てがそのままPDFダイレクト印刷でも機能するとは、言い切れないという点を、予めご承知おきください。
手順は、次のとおりです。
1. プリンターのドライバーのプロパティ画面で、「ポート」を「FILE:」に変更して保存します。
ポートをFILE:に変更















2. メモ帳に簡単なデータ(例:ABC)を書き込んでから、印刷を行なうと、下記の画面のように「出力
ファイル名と保存場所の指定
先ファイル名」を指定する画面が表示されます。そこで、「c:\ファイル名(例:ABC1.dat)」を指定して、OKボタンを押します。(これによって、ドライバーがデフォルトの設定の時の印刷データが、ファイルに保存されます。)






3. PDFダイレクト印刷時に指定したい設定(例:給紙トレイをトレイ2に固定する)を、プリンター・ドライ
用紙トレイを2に固定
バーのプロパティ画面で指定してから、同じメモ帳のデータを印刷します。その際に指定するファイル名は、"2."のものと別にします。(例:ABC2.dat)










4. Cドライブの直下に保存された2つのファイル(例:ABC1.datとABC2.dat)をメモ帳で開いて比較し
2箇所のPJLコマンドの違い
ます。
(初めに@PJLで始まる設定のための行が、何行もあることに驚かれると思います。)
この例では、
  • 「@PJL SET AUTOTRAYCHANGE」が、「ON」から「OFF」に
  • 「@PJL SET TRAY」が、「ALL」から「TRAY2」に
変更されたことが分かります。




5. そこで、"ABC2.dat"ファイルに対して、次の編集を行ってから別名(例:settray2.pjl)保存します。
settra2.pjlの内容
(1) @PJL JOB NAME = "無題 - メモ帳"を@PJL JOB NAME = "Mapping Job"に変更します。(この名前は任意です。)

(2) 最終行の@PJL ENTER LANGUAGE = RPCSを@PJL ENTER LANGUAGE = PDFに変更します。これは、プリンターをPDFダイレクト印刷モードに切り替えるためのものです。(多くのプリンターでは、送信されてきた印刷データの種類を自動検知して、そのモードに切り替わるようにできていますが、誤検知する場合を考慮して、この変更は必須と考えてください。)


(3) (1)(2)の2行と、@PJL SET AUTOTRAYCHANGE = OFF、@PJL SET TRAY = TRAY2の2行を残して、@PJLで始まる行と、@PJL ENTER LANGUAGE = PDFより後ろのデータを削除します。

(4) @PJL ENTER LANGUAGE = PDFの直後に、改行を追加します。(これは必須です。ご注意ください。)

以上の編集の結果、"settray2.pjl"ファイルの内容は、上の画面のようになります。このファイルをIFS 上の決めた場所に保存します。(例 : /mapping/pjl/settray2.pjl)

6. 印刷する PDF ファイルの先頭に付けるPJLコマンドのファイルの他に、後に付けるファイルが必
PJL_after.pjlファイルの内容
要です。つまり、PDF ファイルの前後をPJLコマンドのファイルで挟むのですが、後ろのファイルは終了を指定するためのものなので、印刷制御に関わらず共通です。
メモ帳(テキスト形式)で開くと、次のようなものです。
@PJL EOJ NAME = "Mapping Job"が共通の部分です。つまり、初めに@PJL JOB NAME = "Mapping Job"で指定した JOB の名前の JOB が EOJ(End Of Job)になるという意味です。
この画面の例は、リコー社製プリンター用のものなので、その後に、標準のRPCSモードに戻すための16進コードが書き込まれています。従って、それ以外の場合には、この部分は削除するか、各プリンター・メーカーの仕様に合わせてください。このファイルを、例えば、"PJL_after.pjl"と名づけて、IFS上の決めた場所に保存します。(例 : /mapping/pjl/PJL_after.pjl)

このようにして準備したPJLコマンドのファイルを、前回お話した"MAPIFS2PRT"コマンドのパラメーターとして指定することにより、PDF ファイルの前後をこれらのPJLコマンドで挟んでプリンターに送信するのですが、詳しくは次回にお話しします。

0 件のコメント:

コメントを投稿