Solaris 共通デスクトップ環境 プログラマーズ・ガイド

部分的な印刷統合

部分的な印刷統合をするためには、アプリケーションは、次のものを提供しなければなりません。

部分的な統合のための印刷コマンドの提供

部分的な印刷統合を提供するためには、アプリケーションは、次の形式の印刷用コマンドを提供しなければなりません。

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%
}

envprint スクリプトの内容は次のとおりです。

#!/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