SET PRINT OPTIONコマンドを使用し、 プログラムから印刷オプションの値を変更することができます。プリントパラメーターを変更する他のコマンド (PRINT SETTINGS、> 引数を使用しない PRINT SELECTION) が呼び出されない限り、このコマンドを使用して定義された各オプションは、セッションの間、データベース全体に対して適用されます。印刷ジョブが開いている間はこのオプションを変更することはできません。
option引数を使用し、変更するオプションを指定することができます。“Print Options”テーマ内の定義済定数のいずれか、またはPDFオプションコード (WindowsのみでPDFCreatorドライバーで利用可能) を渡すことができます。
指定したoptionの新しい値は、value1と (オプションの) value2に渡します。渡す値の数と種類は、指定したオプションのタイプによって異なります。
以下の表でoptionとそれに対応するvalueを説明します:
定数 |
型 |
値 |
コメント |
Paper option |
倍長整数 |
1 |
value1 のみを使用した場合、ここには用紙の名前のみが含まれます。両方の引数を使用した場合、value1 には用紙の幅が、value2 には用紙の高さが含まれます。幅と高さはどちらもスクリーンピクセルで表現されます。プリンターで使用できる全ての用紙フォーマットの名前、高さと幅を取得する場合にはPRINT OPTION VALUES コマンドを使用して下さい。 |
Orientation option |
倍長整数 |
2 |
value1 のみ:1=縦向き、2=横向き。異なるページ方向が使用されている場合、GET PRINT OPTIONコマンドはvalue1に0を返します。 64-bit 版のみ: このオプションは印刷ジョブ内から呼び出す事が可能なので、同一印刷ジョブ中において縦向きを横向きに、あるいはその逆へと切り替えることが可能です。 |
Scale option |
倍長整数 |
3 |
value1 のみ: 拡大縮小の倍率の値(パーセント)。一部のプリンターでは倍率の変更を許可していないものもあるという点に注意して下さい。無効な値を渡した場合、プロパティは印刷時に100%へとリセットされます。 |
Number of copies option |
倍長整数 |
4 |
value1 のみ: 印刷する部数 |
Paper source option |
倍長整数 |
5 |
(Windows のみ) value1 のみ: コマンドで返されるトレイの配列の中で、使用される予定の用紙トレイのインデックスに対応する番号。このオプションはWindowsでのみ使用可能です。 |
Color option |
倍長整数 |
8 |
(Windows のみ) value1 のみ: カラーを管理するモードを指定するコード: 1=白黒(モノクロ)、2=カラー 64-bit 版: このオプションは64-bit版の4Dではサポートされていません。(廃止予定) |
Destination option |
倍長整数 |
9 |
value1: 印刷先のタイプを指定するコード: 1=プリンター、2=(PC)/PS ファイル(Mac)、3=PDFファイル、5=スクリーン(OS X ドライバーオプション)。 value1 が1あるいは5以外であった場合、value2 には生成されたドキュメントへのパス名が含まれます。このパスは他のパスが指定されるまでは使用され続けます。保存先に同じ名前のファイルが既に存在していた場合には、それは置き換えられます。GET PRINT OPTIONの場合、カレントの値が既定のリスト内にない場合、value1 には-1が返され、OKシステム変数は1に設定されます。エラーが起きた場合、value1 とOKシステム変数は0に設定されます。 注: Windowsにおいては、PDF Creatorドライバーがインストールされていた場合には印刷先を3(PDFファイル)に設定することができます。(9;3;path) の値が渡された場合、4Dは自動的に"サイレント"PDF印刷を開始します。この場合には、渡されたオプションコードであればどれでも受け取ります(value2 に空の文字列を渡すかこの引数を省略した場合、印刷時にファイルを保存ダイアログが表示されるという点に注意して下さい)。印刷後、カレントの設定は保存されます。これは4DのPDF印刷の管理を簡略化し、ユーザーがマルチプラットフォームなコードを書けるようにします。(9;3;path)値が渡されなかった場合、印刷は4Dによって管理されず、渡されたPDF Creatorオプションコードはどれも無視されます。 |
Double sided option |
倍長整数 |
11 |
(Windows のみ) value1: 0=片側印刷あるいは標準、1=両面印刷。value1=1のとき、value2 にはページ綴じの設定が含まれます: 0=左綴じ(デフォルト値)、1=上綴じ 注: このオプションはWindows環境においてのみ使用可能です。 |
Spooler document name option |
倍長整数 |
12 |
value1 のみ: スプーラドキュメントの一覧に表示される、カレントの印刷ドキュメント名。この宣言によって定義される名前は、新しい名前あるいは空の文字列が渡されない限りはセッションで印刷される全てのドキュメントに対して使用されます。標準のオペレーション(メソッドの場合にはメソッド名を、レコードの場合にはテーブル名を使用)を使用あるいは復元するためには、空の文字列をvalue1 に渡して下さい。 |
Mac spool file format option |
倍長整数 |
13 |
(Mac のみ) value1 のみ: 0=PDFモードでジョブを印刷(デフォルト値) 1=PostScriptモードでジョブを印刷 注: - このオプションはWinodws環境下では何の効力も持ちません。 - OS Xでは、印刷はデフォルトでPDFで行われます。しかしながら、PDF印刷ドライバは格納されたPostScript情報をもつPICTフォーマットのピクチャーをサポートしません。これらのピクチャーは具体的にはヴェクター式の描画ソフトウェアによって生成されます。このような問題を避けるため、このオプションではOS X環境下のカレントのセッションで使用するために、印刷モードを変更することができます。ただしPostScriptモードでの印刷には予期せぬ副作用を引き起こす可能性がある点に注意して下さい。 64-bit 版: このオプションはサポートされていません。代わりに、SET CURRENT PRINTER コマンドのGeneric PDF driver オプションで置き換えられています。 |
Hide printing progress option |
倍長整数 |
14 |
(Mac のみ) value1 のみ: 1=進捗ウィンドウを非表示、0=進捗ウィンドウを表示(デフォルト)。このオプションは、特にOS XでのPDF印刷の際に有用です。 注: データベース設定ダイアログボックス内には、既に印刷プログレスオプションがあります(インターフェースページ内)。しかしながら、この設定は全体に適用され、OS X環境下でのウィンドウを全て非表示にするわけではありません。 |
Page range option |
倍長整数 |
15 |
4D Write Pro 専用のオプション
|
Legacy printing layer option |
倍長整数 |
16 |
(Windows用4D 64-bit版のみ) value1 のみ: 1=以降の印刷ジョブに対してはGDI-ベースの旧式の印刷レイヤーを選択。0=D2D印刷レイヤーを選択(デフォルト)。 64-bit 版: このセレクターはWindows用64-bit版4Dのシングルユーザーアプリケーションでのみサポートされます。他のプラットフォームでは無視されます。これは主に64-bit版4Dアプリケーションの4Dジョブ内で旧式プラグインが印刷できるようにするためにものです。 |
注:
- SET PRINT OPTIONコマンドを用いて設定したプリントオプションがリセットされないように、PRINT SELECTION、PRINT RECORD、PAGE BREAKコマンドでは、任意の引数 > を必ず使用してください。
- SET PRINT OPTION コマンドは主にPostScript プリンターをサポートします。このコマンドは他のタイプのプリンター、例えばPCLやlinkなどにも使用できますが、その場合一部のオプションが使用できない可能性があります。
option 引数でPDFオプションコードを使用できるようにするためには、4D環境にPDFCreatorドライバーがインストールされていなければなりません (詳細情報についてはWindowsにおけるPDFCreatorドライバーの統合を参照してください)。さらにオプションコードが効力を得るためには、以下の文を使用してPDF印刷の制御を有効にしなければなりません:
そうしなければoptionコードは無視されます。
PDFoptionコードは2つの部分からなるテキストタイプのコードです。OptionTypeとOptionNameを"OptionType:OptionName"のように組み合わせます。このコードの説明は以下の通りです:
- OptionType はネイティブなPDFCreatorオプションあるいは4D PDF管理オプションのいずれを設定するかを指定します。2つの値が受け入れられます:
- PDFOptions = ネイティブオプション
- PDFInfo = 内部オプション
- OptionName は設定するオプションを指定します (OptionType 値に基づきます)。
- OptionType = PDFOptionsの場合、OptionNameには複数のPDFCreatorネイティブオプションのうち一つを渡せます。例えばUseAutosaveオプションは自動バックアップに影響します。このオプションを変更するには、option 引数に"PDFOptions:UseAutosave"を渡し、使用する値をvalue1引数に渡します。PDFCreatorネイティブオプションに関する完全な説明は、PDFCreatorドライバーの説明書を参照してください。
- OptionType = PDFInfoの場合、OptionNameには以下の特定のセレクターを渡せます:
- Reset print: 特に無限ループから抜けるために、内部的な待ち状態をリセットするために使用します。この場合value1は使用しません。
- Reset standard options: すべてのPDFCreatorオプションをデフォルト値にリセットするために使用します。印刷中の場合、デフォルト設定はその印刷が終了後に適用されます。この場合value1は使用しません。
- Start: PDFCreatorスプーラーを開始または停止するために使用します。value1に0を渡すと停止、1を渡すと開始です。
- Reset options: SET PRINT OPTIONコマンドおよびPDFOptionsを使用して、セッションの開始以降変更されたすべてのオプションをリセットします。
- Version: PDFCreatorドライバーの現在のバージョンを読み取るために使用します。このセレクターはGET PRINT OPTIONコマンドでのみ使用できます。番号はvalue1引数に返されます。
- Last error: PDFCreatorドライバーから最後に返されたエラーを読みとるために使用します。このセレクターはGET PRINT OPTIONコマンドでのみ使用できます。エラー番号はvalue1引数に返されます。
- Print in progress: PDFCreatorにより、4Dが印刷を待っているかどうかを知るために使用します。このセレクターはGET PRINT OPTIONコマンドでのみ使用できます。value1引数に1が返されると、4DはPDFCreatorを待っています。そうでなければ0が返されます。
- Job count: 印刷キューにいくつのジョブがたまっているかを知るために使用します。このセレクターはGET PRINT OPTIONコマンドでのみ使用できます。ジョブ数はvalue1引数に返されます。
- Synchronous Mode: 4Dが送信した印刷リクエストとPDFCreatorドライバー間の同期モードを設定するために使用します。4Dは印刷キュー内にある印刷ジョブの現在の状態に関する情報を取得できないので、このオプションを使用して、PDFCreatorドライバーが空き状態のときにのみジョブを送信することで、その実行をよりうまく制御できます。この場合、4Dはドライバーと同期されています。value1 に0を渡すと4Dは即座に印刷リクエストを送信します (デフォルト値)。そして1を渡すと4Dは同期を行い、他のリクエストを送信する前にドライバーがジョブを終了するのを待ちます。
注: それぞれの印刷後に、4DはPDFCreatorを使用する他のアプリケーションとの衝突を避けるために、自動でPDFCreatorドライバーの設定を以前のものに戻します。
以下のメソッドはテーブル中の全レコードを印刷するために、PDFドライバーを有効にします。PDFはC:\Test\Test_PDF_X (Xはレコード位置番号) に書き出されます:
SET CURRENT PRINTER(PDFCreator Printer Name)
If(OK=1)
ALL RECORDS([Table_1])
For($i;1;Records in selection([Table_1]))
SET PRINT OPTION(Destination option;3;"C:\\Test\\Test_PDF_"+String($i))
PRINT RECORD([Table_1];*)
NEXT RECORD([Table_1])
End for
SET PRINT OPTION("PDFInfo:Reset standard options";0)
End if
64-bit版では、Orientation option の値を同一印刷ジョブ内で変更することができます (特例)。PAGE BREAK コマンドの呼び出しより先に、このオプションがあらかじめ設定されている必要があることに留意ください:
コマンドが正しく実行されるとシステム変数OKに1が設定され、そうでなければ0が設定されます。
optionに渡した値が無効であるか、そのプリンタでoptionが利用できない場合、コマンドはエラーを返し (ON ERR CALLコマンドでインストールされたエラー管理メソッドを用いて、このエラーをとらえることができます) 、オプションの現在の値がそのまま保持されます。