FAQ

用紙設定をコントロールすることができますか

ID40
カテゴリー印刷
プラットフォーム

「特定の用紙設定を"保存"、"読み込み"出来ればいいのに」と思うことがあるかもしれません。例えば「1つは横長に、1つは縦長の用紙設定で印刷したい」というような要求があるかもしれません。

4Dの用紙設定は、フォームをデザインした時に、1つだけ用紙設定をフォームに保存することができます。言い換えるなら複数の用紙設定(書式設定)を1つのフォームに保存することはできません。

しかし複数の用紙設定を1つの印刷帳票で取り扱う方法はあります。

PAGE SETUP

PAGE SETUPを使うことで、任意のフォームに保存された用紙設定を別のフォームで利用できます。

しかしPAGE SETUPコマンドは、リファレンスにも記述があるとおり現在廃止予定のコマンドです。新しくプログラムを作成される、あるいはプログラムを見直されるのであれば、後述の方法をご検討ください。

Print settings to BLOB、BLOB to print settings

4D Packプラグインでしか利用できなかった、印刷設定をBLOBに取り込んだり、BLOBに収められた印刷設定をメモリに展開するコマンドが、4D v16から標準コマンドになりました。

このコマンドを使うことで、プリンタの用紙設定をプログラムで扱うことができます。

用紙設定は、OSで標準化された構造体として定義されています。しかしプリンタ毎に異なる情報もありますので、構造体はドライバ毎に拡張された情報を含んでいます。

この構造体をまるごとBLOB変数に取り出すコマンドがPrint settings to BLOBで、BLOB変数から構造体に戻す関数がBLOB to print settingsです。

この2つ関数を使うことで、ユーザーの環境でインストールされたプリンタの用紙設定をプログラムで自由に扱うことができます。

例えば、用紙設定をPRINT SETTINGSで行い、その値をPrint settings to BLOBで取り出します。

その後の印刷では印刷処理直前にBLOB to print settingsを使いBLOB変数に収められた用紙設定を使えば、1度だけのPRINT SETTINGSで設定できるので、アプリケーションを使うユーザの利便性を上げることができます。

またBLOB変数をフィールドや外部ファイルに保存して利用することも可能でしょう。

BLOB変数をファイル化するにはBLOB TO DOCUMENTが、ファイルからBLOBを復元するにはDOCUMENT TO BLOBを使うと簡単に行えます。

印刷設定は環境依存の情報ですから、4D内部に取り込まずにシステムのプレファレンスフォルダ等にファイル化して保存するのが望ましいと言えます。

BLOB to print settingsのリファレンスに、4Dのプレファレンスと同じ階層にフォルダを用意して利用する方法がありますので、それが参考になるでしょう。