3    ジョブの印刷

この章では,ジョブをプリンタに対して実行する方法,および属性を使用して印刷出力の特性を指定する方法について説明します。属性の詳しい説明と,使用できるすべての属性の要約については,付録 A を参照してください。

3.1    プリント・ジョブの実行

pdpr コマンドを使用してジョブを印刷します。たとえば,次のコマンドは,report.txt というドキュメント・ファイルを省略時のプリンタに対して実行します。

% pdpr report.txt

次のコマンドは,ファイル名を空白で区切ることにより,省略時のプリンタに 3 つのファイルを送信します。

% pdpr report.txt table.txt chart.ps

特定のプリンタを指定するには,-p オプションとそのプリンタ名を示す引数を使用します。オプションと引数は必ず,それを適用するドキュメント・ファイル名の前に置きます。

次のコマンドは,report.txt および table.txtpawprint というプリンタに対して実行します。

% pdpr -p pawprint report.txt table.txt

3.2    ジョブの属性の指定

属性を使用することにより,ジョブおよびドキュメントごとに,異なる特性を指定することができます。-x オプションを使用して属性に対する値を入力します。たとえば,budget99.txt を両面印刷するには,次のように入力します。

% pdpr -x "sides=2" budget99.txt

注意

例の中には,属性が 1 つで,その前後に引用符が付いていることがあります。ただし,引用符は複数の属性,または空白を含む属性値に付けるものです。

プリント要求の中で複数の属性を指定するには,いくつかの方法があります。それらをまとめて引用符の中に入れて,-x オプションの後に置くこともできます。属性の 1 つ 1 つに -x オプションを付けて指定することもできます。また,属性を属性ファイルに格納し,そのファイルを -X (大文字の X) オプションで指定することも可能です。

次のコマンドは,すべて同じです。

% pdpr -x "sides=2 job-comment=After the takeover'" budget99.txt

% pdpr -x sides=2 \
-x job-comment="After the takeover" budget99.txt

3.2.1    印刷部数の指定

個々のドキュメント,またはジョブ全体を複数部数印刷することができます。ジョブの中で部数を指定するには,job-copies 属性,または -n copies オプションとともに pdpr コマンドを使用します。システムの省略時の印刷部数は 1 部です。

省略時の論理プリンタで budget99.txt および inventory99.txt を 2 部印刷するには,次の例のいずれかを使用します。

% pdpr -x "job-copies=2" budget99.txt inventory99.txt
% pdpr -n 2 budget99.txt inventory99.txt

ジョブの中で,ドキュメントの印刷部数に異なる数値を指定するには,copy-count 属性を使用します。次の例では,slides.ps を 2 部,handout.ps を 3 部印刷します。

% pdpr -x copy-count=2 slides.ps -x copy-count=3 handout.ps

3.2.2    両面印刷の指定

用紙の両面に印刷できるプリンタが環境にある場合は, sides 属性によって,片面印刷または両面印刷を指定することができます。

どのプリンタが両面印刷を行えるかを調べるには,次の pdls コマンドを使用します。

% pdls -c printer -r "printer-name sides-supported" 
printer-name  sides-supported
------------  ---------------
bulldog       1
              2
boxer         1

この出力は,1 番目のプリンタだけが両面印刷をサポートすることを示しています。ファイル budget99.txt を両面印刷するには,次のように入力します。

% pdpr -x sides=2 budget99.txt

プリント・ジョブは,両面印刷のできるプリンタに送られます。プリンタに sides-supported に対する値がなければ,ジョブに対して sides 属性を使用することはできません。プリンタはドキュメント内部の制御命令に従って,またはプリンタ・デバイスのフロント・パネルで設定された省略時の片面/両面の値に従って印刷します。

一部のドキュメント,特に PC ベースのアプリケーションで作成したドキュメントには,プリント・コマンドの指定にかかわらず,ドキュメントを片面または両面で印刷するように強制するプリンタ命令を持つものがあります。

3.2.3    ドキュメント・フォーマットの指定

プリント・システムは,テキスト,PCL,および PostScript などのドキュメント・フォーマットでジョブを印刷できます。プリント・ジョブを実行するときには,通常,ドキュメント・フォーマットを指定する必要はありません。プリント・システムは,それぞれのドキュメントのごく一部を検査することによってフォーマットを決定します。

プリント・システムがドキュメント・フォーマットを決定できない場合,結果としてジョブを受け付けられないことがあります。この場合には,document-format 属性でフォーマットを指定する必要があります。

review というファイルを省略時の論理プリンタで印刷し,PCL をドキュメント・フォーマットに指定するには,次のように入力します。

% pdpr -x "document-format=PCL" review

3.2.4    用紙の指定

一部のプリント環境では,オペレータまたは管理者が input-trays-medium 属性に値を割り当てることにより,用紙タイプを給紙トレイに関連付けています。この場合,default-medium 属性を使用することにより,印刷用紙を選択することができます。構成の詳細については管理者に確認するか,pdls コマンドに media-supported 属性を指定して調べます。たとえば,論理プリンタ bulldog でどの用紙がサポートされているかを調べるには,次のように入力します。

% pdls -c printer -r media-supported bulldog

このコマンドで何も報告されない場合は,用紙を選択するために給紙トレイを指定する必要があります。

ジョブを実行する前に,まず input-trays-medium 属性が物理プリンタ上で定義されているかどうかを調べる必要があります。たとえば,物理プリンタが bulldog1_pp の場合,次のコマンドを入力して input-trays-medium 属性を表示します。

% pdls -c printer -r input-trays-medium bulldog1_pp

mailer というファイルをプリンタ bulldog に対して実行し,使用する用紙として monarch-envelope を指定するには,次のように入力します。

% pdpr -p bulldog -x "default-medium=monarch-envelope" mailer

ドキュメントにプリンタの省略時の設定を指定変更するトレイ選択オペレータが含まれている場合,予期しない用紙選択が行われることがあります。

3.2.5    給紙トレイの指定

印刷用紙を選択するもう 1 つの方法は,pdpr に default-input-tray 属性を指定して使用することです。まず,次の例にあるように,プリンタがサポートする給紙トレイを調べます。

% pdls -c printer -r input-trays-supported pawprint
input-trays-supported
---------------------
top
bottom
large-capacity

下段の給紙トレイを使用して,cad23.ps というファイルをプリンタ pawprint で印刷するには,次のように入力します。

% pdpr -p pawprint -x "default-input-tray=bottom" cad23.ps

ドキュメントにプリンタの省略時の設定を指定変更するトレイ選択オペレータが含まれている場合,予期しない用紙選択が行われることがあります。

3.2.6    排出トレイの指定

pdpr に output-bin 属性を指定して使用することにより,プリント・ジョブのための排出トレイを指定できます。

まず,次の例にあるように,プリンタがサポートする排出トレイを調べます。

% pdls -c printer -r output-bins-supported bulldog
output-bins-supported
---------------------
top
side

budget99.txt というファイルを印刷し,サイドの排出トレイに出力するには,次のように入力します。

% pdpr -x output-bin=side budget99.txt

3.2.7    フィニッシング処理の指定

プリンタの中には,トリミング,製本,およびホチキスどめのようなフィニッシング処理を行う,高度なハードウェア・オプションを持つものがあります。プリンタがフィニッシング処理をサポートするかどうかを調べるには,次のコマンドを使用します。

% pdls -c printer -r "finishings-supported"

フィニッシング処理を使用してジョブを印刷するには,pdpr コマンドに finishing 属性を含めます。たとえば,budget99.txt を中綴じ印刷するには,次のように入力します。

% pdpr -x "finishing=saddle-stitch" budget99.txt

3.2.8    標準入力からの印刷

シェルのパイプ機能を使用することにより,標準システム・ユーティリティからのジョブを印刷することができます。たとえば,現在のディレクトリのファイル・リストを印刷するために,ls コマンドの出力を,省略時のプリンタに直接パイプすることができます。

% ls -l | pdpr

3.3    ジョブ・スケジューリング属性の指定

プリント・ジョブを実行すると,ジョブは先入れ先出しでスケジューリングされます。リソースのチェックにより,ジョブはそのジョブを印刷できるプリンタにのみ割り当てられます。

場合によっては,後日印刷するような命令を付けてジョブを実行したいことがあるでしょう。たとえば,長いジョブを数時間後に印刷するようスケジューリングすることがあります。また,仕事に戻ってから状態を確認できるように,保持期間を設定したい場合もあるでしょう。

以降の各項では,いつジョブを印刷するか,またジョブをどのくらいの時間保持するかを制御するためのジョブ・スケジューリング属性について説明します。

3.3.1    プリント・ジョブの保留

プリント・ジョブを印刷するか保留するかを指定するには,job-hold 属性を使用します。省略時の値は,no (保留しない) です。

すでに実行したジョブがプリント・キューでまだ待機している場合,pdmod コマンドを使用して,その job-hold 属性を yes に変更することにより,ジョブを保留できます。これにより,スプーラ・サーバがジョブを印刷しなくなります。同じプリンタに対して実行された (しかし,保留されてない) 他のジョブは,通常どおり,引き続きスケジューリングされます。保留されたジョブは,job-hold 属性を no に設定するか,job-discard-time で指定した時刻が来るまで印刷されません。

次の例は,pdmod コマンドを使用して,ジョブ dogear_spl:1027 を保留状態にします。

% pdmod -x "job-hold=yes" dogear_spl:1027

後で,次のコマンドにより,ジョブを印刷に送ることができます。

% pdmod -x "job-hold=no" dogear_spl:1027

注意

pdpause コマンドおよび pdresume コマンドは,job-hold 属性の値とは独立に使用することができます。

3.3.2    指定時刻後の印刷

カレンダー日付と時刻を指定し,それ以降にジョブの印刷をスケジューリングするには,job-print-after 属性を使用します。値は,dd:mm:yyyy:HH:MM:SS というフォーマットで入力します。

ジョブの印刷を 1999 年 3 月 2 日午後 5 時以降に指定するには,次の例を使用します。

% pdpr -x "job-print-after=02:03:1999:17:00:00" budget99.txt

ジョブの印刷がまだ開始されていなければ,それ以降に印刷する時刻を変更することができます。まず,pdq コマンドを使用してジョブ識別子を取得します。

% pdq
job-identifier  job-name   current-job-state intervening-jobs
--------------  --------   ----------------- ----------------
dogear_spl:1517 budget99.txt pending      0

次に pdmod コマンドを使用し,ジョブ識別子をコマンド・オペランドにして,新しい時刻 (たとえば 午後 7 時) を指定します。

% pdmod -x "job-print-after=02:03:1999:19:00:00" dogear_spl:1517

3.3.3    ジョブの保持

プリント・システムは,印刷後またはエラー終了後,プリント・ジョブを保持しておくことができます。これは,ジョブが完了した後に,追加の部数を印刷する必要がある場合,またはジョブが正しく印刷されなかった場合に便利です。ジョブの完了後,プリント・システムがジョブ,属性,およびデータを保持する時間の長さを指定するには,job-retention-period 属性を使用します。この属性を設定することにより,ジョブが印刷された後でも状態情報を取得して,プリント・ジョブを再実行できるようになります。

job-retention-period 属性は,プリント・システムがジョブ,属性およびデータを保持する時間の下限を指定します。job-discard-time は,ジョブが印刷されたかどうかにかかわらず,それらを保持する上限を指定します。時刻の値には,[HH:]mm[:SS] というフォーマットを使用します。

たとえば,ジョブ dogear_spl:27 を印刷後 60 分間保持するよう指定するには,次のような pdmod コマンドを使用します。

% pdmod -x "job-retention-period=60" dogear_spl:27

3.3.4    ジョブの自動破棄

印刷されたかどうかにかかわらず,プリント・ジョブを破棄する日付と時刻を指定するには,job-discard-time 属性を使用します。

この属性は,ジョブが印刷されたかどうかにかかわらず,ジョブ,その属性,およびデータを保持する上限を指定するものです。job-retention-period は,それらを保持する下限を指定します。時刻の値には,dd:mm:yyyy:HH:MM:SS というフォーマットを使用します。

1999 年 2 月 28 日午後 5 時までに印刷されなければ,budget99.txt のプリント・ジョブを削除するよう指定するには,次のように入力します。

% pdpr -x "job-discard-time=28:02:1999:17:00:00" budget99.txt

3.4    ジョブおよびドキュメントに対する省略時の値の指定

プリント・システムは,次のように,ジョブおよびドキュメントに属性の初期セットを供給するオブジェクトを 2 種類サポートします。

初期値オブジェクトによって,よく使用されるジョブ属性およびドキュメント属性のセットをプリント・ジョブに適用しやすくなります。管理者は必要なだけ,初期値オブジェクトを作成することができます。さらに,それらに入っている属性や値を変更するのも容易です。

初期値オブジェクトは,次の 2 つの方法で使用できます。

すべてのサイトは異なっているので,このようなオブジェクトを使用する場合は,インストールの詳細を管理者に確認する必要があります。

3.4.1    initial-value-job オブジェクトの使用

次の例に,initial-value-job オブジェクトがどのように使用されるかを示します。

管理者は printer-initial-value-job 属性を使用して,省略時の論理プリンタに省略時のジョブ設定を適用します。そのような設定の 1 つが,job-sheets=job-copy-start 属性です。その結果,その論理プリンタに送信されたすべてのジョブに,ジョブ開始シートが含まれます。

しかし,特定のジョブでは,開始シート,終了シート,およびドキュメント・シートを印刷したい場合があります。管理者はこの目的のために,ivj_full_sheets という initial-value-job オブジェクトを作成しました。これには,job-sheets=job-copy-wrap および document-sheets=doc-set-start-copy-separate 属性が含まれます。

ファイル quote.txt を省略時のプリンタに送信し,ivj_full_sheets をプリント要求に適用するには,次のように入力します。

% pdpr -x initial-value-job=ivj_full_sheets quote.txt

3.4.2    initial-value-document オブジェクトの使用

次の例に,initial-value-document オブジェクトがどのように使用されるかを示します。

管理者は printer-initial-value-document 属性を使用して,ドキュメントの省略時の値を論理プリンタに適用します。それらの省略時の値の 1 つが sides=1 属性です。その結果,その論理プリンタに対して実行されるすべてのドキュメントが片面印刷されます。

しかし,テキスト・ドキュメントを両面印刷で片面に 2 ページ印刷しなければならない場合が時々あります。このニーズに対応するため,管理者は ivd_2x2 という initial-value-document オブジェクトを作成しました。これには,sides=2 および number-up=2 属性が含まれます。

quote.txt というドキュメントを bulldog という論理プリンタに送信し,ivd_2x2 にある初期値をプリント要求に適用するには,次のように入力します。

% pdpr -x initial-value-document=ivd_2x2 -p bulldog quote.txt

3.4.3    属性ファイルの使用

特定の属性および初期値オブジェクトをテキスト・ファイルにあらかじめ定義し,それらをプリント・コマンドに含めることができます。このような属性ファイルを使用すると,プリント属性と値の組み合わせのうち頻繁に使用するものを格納しておき,簡単に取り出せるようになるので,複雑なコマンドを正確に表現することが容易になります。詳細については,『Advanced Printing Software コマンド・リファレンス・ガイド』を参照してください。

たとえば,会議のために月次報告書を 5 部印刷するときに,それらを pawprint という名前のプリンタで両面印刷する必要がある場合は,次の属性ファイル monthly.attr を作成して使用します。

job-comment="wonderful monthly report"
document-format=PostScript
job-copies=5
sides=2
printer-requested=pawprint

-X オプションを使用して,属性ファイルを指定します。たとえば,報告書のファイルが mar98.ps の場合,次のように入力します。

% pdpr -X monthly.attr mar98.ps

3.5    ジョブ状態の通知の要求

pdpr コマンドで -N オプションを使用して,ジョブが印刷を完了したときに通知するよう要求することができます。通知は電子メール,またはコンソール・ウィンドウにメッセージを表示することによって行われます。

-N オプションの有効な値は次のとおりです。

email[:address]

message[:address]

3.5.1    電子メールによる通知の要求

省略時の論理プリンタで inventory.txt というファイルを印刷し,ジョブが印刷を完了したときに end-user@paper-jam.com というアドレス宛ての電子メールで通知を受け取る場合は,次のように入力します。

% pdpr -N email:end-user@paper-jam.com inventory.txt

3.5.2    コンソール・メッセージによる通知の要求

-N に message 引数を付けて指定することにより,通知がホストのコンソール・ウィンドウ (通常は,CDE,Motif,または X Window 環境の dxconsole) に送信されます。Advanced Printing Software V1.0 では,通知の要求に message メソッドを使用する前に,コンソール通知デーモン (/usr/pd/lib/pdconntf) を実行し,通知されたホストの X サーバにメッセージを書き込むサーバ・ホストの許可を付与する必要があります。プリント・システム・サーバのホストが xhost リストにあるかどうかを調べるには,xhost コマンドを使用します。リストにない場合は,xhost +nodename コマンドを使用して,それを追加することができます。

たとえば,プリント・システム・サーバがホスト dogear で実行されている場合,次のコマンドを入力すると,メッセージをコンソールに送れるようになります。

% xhost +dogear

プリント・サーバのホストが追加されたことは,引数を付けずに xhost コマンドをもう 1 度入力することにより確認できます。

cutbacks.txt というファイルを印刷し,ジョブ完了メッセージをノード bulldog のコンソール・ウィンドウに書き込むには,次のように入力します。

% pdpr -N message:bulldog cutbacks.txt

3.6    プロセッサ・フィルタの使用

ドキュメント・データは,多くの場合,印刷前に翻訳または変更が必要です。たとえば,シンプル・テキスト・ファイルを PostScript プリンタで印刷する場合,プリプロセッサ・フィルタ・プログラムを使用して,テキストを PostScript に翻訳する必要があります。プリント・システムは,次の種類のフィルタ・プログラムをサポートします。

システム管理者は,共通の UNIX ユーティリティを使用して,標準入力から読み込み,標準出力に書き出すフィルタをセットアップすることができます。Advanced Printing Software ソフトウェアには,テキスト・ファイルから PostScript 言語への翻訳タスクを行う text-to-PostScript 翻訳フィルタが用意されています。管理者の協力があれば,他のプリプロセッサ・フィルタを作成,または取得することができます。

システム管理者は,filter-definition 属性を使用して,プリント・スーパバイザ・サーバのプリプロセッサ・フィルタを構成します。使用する物理プリンタを制御するスーパバイザ・サーバの名前がわかっていれば,構成済みフィルタのリストを取得できます。

次の例に,特定の論理プリンタで利用できるフィルタを調べる方法を示します。最初に,どの物理プリンタがその論理プリンタに関連付けられているかを調べる必要があります。

% pdls -c printer -r printer-associated-printer bulldog
printer-associated-printers
---------------------------
bulldog1_pp
bulldog2_pp

表示された物理プリンタの名前を使用して,それに関連付けられたサーバ,すなわちプリンタ・スーパバイザの名前を要求します。

% pdls -c printer -r associated-server bulldog1_pp
associated-server
-----------------
dogear_sup

これで,プリンタ・スーパバイザで利用できるフィルタ定義のリストを要求できます。

% pdls -c server -r filter-definition dogear_sup

すべてのフィルタ,つまりすべての翻訳フィルタと変更フィルタが表示されます。変更フィルタの場合は modification-filter 属性,翻訳フィルタの場合は translation-filter 属性を使用してフィルタを指定することにより,印刷するドキュメントにフィルタを適用するよう要求できます。

次の例では,ファイル c_supprt.clisting という名前の変更フィルタを使用して,省略時のプリンタで印刷されます。

% pdpr -x modification-filter=listing c_supprt.c

3.6.1    Text-to-PostScript 翻訳フィルタ

text-to-PostScript 翻訳フィルタは,シンプル・テキスト・ドキュメントを PostScript に翻訳するものです。このフィルタは,PostScript 言語だけをサポートするプリンタにシンプル・テキスト・ドキュメントを送信すると,必ず実行されます。

管理者は,プリント・システム属性を翻訳オプションに関連付けるコマンド・オプション置換によって, filter-definition 属性をセットアップすることができます。text-to-PostScript 翻訳フィルタの構成は,サーバ・ソフトウェアが初めてセットアップされたときに自動的に実行されます。

翻訳フィルタは自動的に適用されますが,あるタイプについて,複数の翻訳フィルタがサーバ上に構成されている場合,特定の翻訳フィルタを指定することができます。

次の例では,テキスト・ファイル c_supprt.c が,組み込みの text-to-PostScript フィルタを使用して,省略時の PostScript 対応のプリンタで印刷されます。スーパバイザ・フィルタは,テキストを PostScript に翻訳するために翻訳フィルタが必要であることを検出します。

% pdpr c_supprt.c

次の例では,テキストから PostScript への翻訳を行う翻訳フィルタ list-to-ps を使用して,ファイル c_supprt.c が省略時のプリンタで印刷されます。

% pdpr -x translation-filter=list-to-ps c_supprt.c

Advanced Printing Software で用意されている text-to-PostScript 翻訳フィルタは,用紙あたりの印刷ページ数 (N アップ),印刷の向き,ページの長さと幅,および設定可能な余白など,多くのフォーマット・オプションを提供します。

3.7    特定の物理プリンタでの印刷

プリント・ジョブを実行すると論理プリンタに送信されますが,その論理プリンタに複数の物理プリンタが関連付けられていることがあります。スプーラがジョブのニーズに最も適した物理プリンタに要求をスケジューリングします。しかし,physical-printers-requested 属性を使用して,特定の物理プリンタにジョブを送信することもできます。

次の例に示すように,pdls コマンド を printer-associated-printers 属性とともに使用することにより,論理プリンタがサポートする物理プリンタの名前を調べることができます。

% pdls -c printer -r "printer-associated-printers" printmore

このコマンドにより,論理プリンタ printmore に関連付けられている物理プリンタ全部のリストが返されます。それらの物理プリンタの 1 つでジョブを印刷するには,論理プリンタも指定する必要がありますが,これは PDPRINTER 環境変数によって暗黙に指定したり,-p オプションによって明示的に指定したりできます。

たとえば,ファイル emily.ps を,論理プリンタ printmore に関連付けられた物理プリンタ printer1_pp に対して実行するには,次のコマンドを使用します。

% pdpr -p printmore \
-x "physical-printers-requested=printer1_pp" emily.ps