部分的な印刷統合をするためには、アプリケーションは、次のものを提供しなければなりません。
印刷アクション
どの印刷環境変数がアクションによって処理されるかによって印刷が統合される範囲
部分的な印刷統合を提供するためには、アプリケーションは、次の形式の印刷用コマンドを提供しなければなりません。
print_command[options]-file filename
options は、印刷環境変数のいくつかまたはすべてを参照する、あるいはどれも参照しないためのメカニズムを提供します (「デスクトップ印刷環境変数」を参照してください)。
この印刷用コマンドのもっとも単純な形式では、オプションを省略します。
print_command -file filename
このコマンド行を使うと、ユーザは、デスクトップのプリンタ・ドロップ領域を使用してアプリケーションのデータ・ファイルを印刷できます。ただし、印刷の出力先は、ドロップ領域によって設定されません。また、環境変数によって設定されたその他の印刷動作は実装されません。たとえば、デスクトップは直接サイレント印刷を行なったり、一時ファイルを削除したりできません。
印刷用コマンドでデスクトップ印刷環境変数に対応する別のコマンド行オプションを提供する場合には、別の統合を提供できます。
たとえば、次のコマンド行は LPDEST を参照する能力を提供します。
print_command [-d destination] [-file filename]
destination は、出力先プリンタです。
次の印刷コマンド行は、4 つの変数すべてを参照するためのオプションを提供します。
print_command [-d destination] [-u user_file_name] [-s] [-e] -file filename
user_file_name |
画面に表示されるファイル名 |
-s |
サイレント印刷 ( [印刷] ダイアログ・ボックスは表示されません。) |
-e |
印刷後にファイルは削除されます。 |
参照はアクション定義で発生します。詳細は、「デスクトップ印刷環境変数」を参照してください。
アクションは 4 つの環境変数を参照できないが、対応するコマンド行オプションをとることができる場合について、この項では、環境変数をコマンド行オプションに変換する方法を説明します。
たとえば、次の例は LPDEST を参照する簡単な印刷アクションです。
ACTION Print { ARG_TYPE data_type EXEC_STRING print_command -d $LPDEST -file %(file)Arg_1% }
ただし、この印刷アクションは、LPDEST が設定されていない場合には予測できない動作をすることがあります。
変数が設定されていないときに適切な動作を提供する印刷アクションを作成するための 1 つの方法は、印刷アクションが使うシェル・スクリプトを作成することです。
たとえば、次のアクションとそれが使用するスクリプトは、4 つの環境変数すべてを正しく処理します。
ACTION Print { ARG_TYPE data_type EXEC_STRING app_root/bin/envprint %(File)Arg_1% }
#!/bin/sh # envprint - sample print script DEST="" USERFILENAME="" REMOVE="" SILENT="" if [ $LPDEST ] ; then DEST="-d $LPDEST" fi if [ $DTPRINTUSERFILENAME ] ; then USERFILENAME="-u $DTPRINTUSERFILENAME" fi DTPRINTFILEREMOVE=echo $DTPRINTFILEREMOVE | tr "[:upper:]" "[:lower:]"` if [ "$DTPRINTFILEREMOVE" = "true" ] ; then REMOVE="-e" fi DTPRINTSILENT=`echo $DTPRINTSILENT | tr "[:upper:]" "[:lower:]"` if [ "$DTPRINTSILENT" = "true" ] ; then SILENT="-s" fi print_command $DEST $USERFILENAME $REMOVE $SILENT -file $1