完全な印刷統合
完全な印刷統合をするためには、アプリケーションは次の条件を備えていなければなりません。
-
[印刷] アクションを提供する。
-
4 つのデスクトップ印刷環境変数を使用する。
デスクトップ印刷環境変数
完全に統合された印刷機能を持つためには、アプリケーションは、次の 4 つの環境変数を参照しなければなりません。LPDEST 変数は、とくに重要です。これによってユーザは、特定のプリンタ・ドロップ領域を使用して印刷の出力先を選択できます。
印刷環境変数
|
説明
|
LPDEST
|
指定された値をファイルのプリンタ出力先として使います。この変数が設定されていない場合には、アプリケーションのデフォルトの印刷装置が使用されます。
|
DTPRINTUSERFILENAME
|
印刷ダイアログまたは印刷出力に表示されるファイルの名前を指定します。この変数が設定されていない場合には、実際のファイル名が使用されます。
|
DTPRINTSILENT
|
印刷ダイアログ・ボックスを表示するかどうかを指定します。この変数に True が設定されているときには、印刷ダイアログは表示されません。この変数が設定されていない場合には、印刷ダイアログ・ボックスが表示されます。
|
DTPRINTFILEREMOVE
|
この変数に True が設定されているときには、印刷したあと、そのファイルは削除されます。この機能は、印刷後は保存しておく必要がない一時ファイルを対象としています。この変数が設定されていない場合には、ファイルは削除されません。
|
完全に統合された印刷アクション
印刷アクションは、登録パッケージの一部分であり、構成ファイル app_root/dt/appconfig/types/<language>/name.dt の中で提供されます。
印刷アクションが、「デスクトップ印刷環境変数」で示した 4 つの環境変数を参照するプログラムを実行する場合には、データ型は完全に統合されています。印刷アクションは、アプリケーションのデータ型に応じて書かなければならず、1 つのファイルだけを受け入れなければなりません。
たとえば、次の印刷アクションは、ThisAppData という名前のデータ型に固有です。
ACTION Print
{
ARG_TYPE ThisAppData
EXEC_STRING print_command -file %(file)Arg_1%
}
|
アプリケーションが ToolTalk の印刷要求を処理する場合には、印刷アクションは、次のアクションの変形で送ることができます。(4 つの環境変数のどれかが設定されていない場合には、対応するメッセージ引き数はヌルになります。メッセージ引き数がヌルのときのデフォルトの解釈については、「デスクトップ印刷環境変数」を参照してください。)
ACTION Print
{
ARG_TYPE ThisAppData
ARG_CLASS FILE
ARG_COUNT 1
TYPE TT_MSG
TT_CLASS TT_REQUEST
TT_SCOPE TT_SESSION
TT_OPERATION Print
TT_FILE %Arg_1%
TT_ARG0_ MODE TT_IN
TT_ARG0_ VTYPE %Arg_1%
TT_ARG1_ MODE TT_IN
TT_ARG1_ VTYPE LPDEST
TT_ARG1_VALUE $LPDEST
TT_ARG2_MODE TT_IN
TT_ARG2_VTYPE DTPRINTUSERFILENAME
TT_ARG2_VALUE $DTPRINTUSERFILENAME
TT_ARG3_MODE TT_IN
TT_ARG3_VTYPE DTPRINTSILENT
TT_ARG3_VALUE $DTPRINTSILENT
TT_ARG4_MODE TT_IN
TT_ARG4_VTYPE DTPRINTFILEREMOVE
TT_ARG4_VALUE $DTPRINTFILEREMOVE
}
|
ACTION Print
{
ARG_TYPE ThisAppData
ARG_CLASS BUFFER
ARG_COUNT 1
TYPE TT_MSG
TT_CLASS TT_REQUEST
TT_SCOPE TT_SESSION
TT_OPERATION Print
TT_ARG0_MODE TT_IN
TT_ARG0_VTYPE %Arg_1%
TT_ARG0_VALUE %Arg_1%
TT_ARG1_MODE TT_IN
TT_ARG1_VTYPE LPDEST
TT_ARG1_VALUE $LPDEST
TT_ARG2_MODE TT_IN
TT_ARG2_VTYPE DTPRINTUSERFILENAME
TT_ARG2_VALUE $DTPRINTUSERFILENAME
TT_ARG3_MODE TT_IN
TT_ARG3_VTYPE DTPRINTSILENT
TT_ARG3_VALUE $DTPRINTSILENT
TT_ARG4_MODE TT_IN
TT_ARG4_VTYPE DTPRINTFILEREMOVE
TT_ARG4_VALUE false
}
|
フィルタされたデータまたは印刷の準備ができているデータのための印刷アクションの作成
デスクトップ印刷ユーティリティ /usr/dt/dtlp は、lp サブシステムに基づく機能を提供します。lp の印刷オプションを集めて、指定されたファイルを印刷します。
次の条件のどちらかに該当する場合には、アプリケーションは dtlp を使用できます。
dtlp の詳細は、dtlp(1)の マニュアル・ページを参照してください。
ファイルを印刷する準備ができている場合には、印刷アクションは、EXEC_STRING の中で dtlp を実行します。たとえば、次のようにします。
ACTION Print
{
ARG_TYPE ThisAppData
EXEC_STRING dtlp %Arg_1%
}
アプリケーションが変換フィルタを備えている場合には、dtlp を実行する前にフィルタが実行されなければなりません。たとえば、次のようにします。
ACTION Print
{
ARG_TYPE MyAppData
EXEC_STRING /bin/sh `cat %Arg_1%| filter-name | dtlp`
}
filter_name は、印刷フィルタ名です。