print-graphic (プロシージャ)
public {print-graphic
graphic:Graphic,
left-margin:Distance = {PRINTER.Printer.get-page-setup-margin}.left-offset,
right-margin:Distance = {PRINTER.Printer.get-page-setup-margin}.right-offset,
top-margin:Distance = {PRINTER.Printer.get-page-setup-margin}.top-offset,
bottom-margin:Distance = {PRINTER.Printer.get-page-setup-margin}.bottom-offset,
unprintable-margin-padding:Distance = 2.0pt,
nw-title:#Visual = null,
nw-title-font-size:Distance = 7.0pt,
ne-title:#Visual = null,
ne-title-font-size:Distance = 7.0pt,
print-page-numbers?:bool = true,
page-number-font-size:Distance = 7.0pt,
print-date?:bool = true,
date-font-size:Distance = 7.0pt,
hstretch?:bool = false,
vstretch?:bool = false,
paginate?:bool = true,
multi-part?:bool = false,
printing-frame:#PrintRootFrame = null,
show-printer-dialog?:bool = true,
from-page:int = 1,
to-page:int = max-int,
orientation:PageOrientation = PageOrientation.default,
owner:#View = {View.get-default-owner},
printer-name:#String = null,
page-description:#PRINTER.PrintPageDescription = null,
media-source:#PRINTER.PrintMediaSource = null,
color:PRINTER.PrintSettingBool = PRINTER.PrintSettingBool.default,
collate:PRINTER.PrintSettingBool = PRINTER.PrintSettingBool.default,
duplex:PRINTER.PrintDuplex = PRINTER.PrintDuplex.default,
copies:int = 0
}:#PrintRootFrame
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.BASE.

Graphic を印刷します。

obj: 印刷する Graphic です。
left-margin, right-margin, top-margin, bottom-margin:
ページのマージンです。サイズがページからマージンを引いたサイズに等しい Frame 内にオブジェクトが印刷されます。これらの値は、既定では Printer.get-page-setup-margin の値に一致します。
開発者が、print-graphic を呼び出す時は、これらの値を明示的に指定しないことを推奨します。これは、Page Setup ダイアログを使用してユーザーが指定するマージンを使用する場合に必要になります。
unprintable-margin-padding: ページ デコレーション (存在する場合) がオフセットされる際の、ページ上の印刷可能領域の端からの距離です。この値は、四捨五入エラー、ならびにデバイスの印刷不可能領域を誤って報告するデバイス ドライバの処理をサポートするために存在します。既定値は 2 ポイントです。
nw-title, ne-title: ドキュメントのタイトルです。これらはそれぞれ、ページの左上および右上に表示されます。null (既定) に設定されている場合、タイトルは表示されません。
print-page-numbers?: もし true の場合, ページ番号(そして "<total-number-of-pages>") がページの右下に印刷されます。 既定値は true です。

詳細については、次を参照してください。
print-date?: true に設定されている場合、現在の日付と時間がページの左下に印刷されます。既定値は true です。
nw-title-font-size, ne-title-font-size, page-number-font-size, date-font-size: ページ デコレーションに使用されるテキストのサイズです。値は大きいがマージンが小さい場合、タイトルがページの内容とオーバーラップすることがあります。既定値は 7 ポイントです。
hstretch?: obj が、例え高い固定性を持つ場合でも、ページを埋めるために水平方向に伸長されるかどうかを制御します。

既定値は false です。
vstretch?: obj が、例え高い固定性を持つ場合でも、ページを埋めるために垂直方向に伸長されるかどうかを制御します。

既定値は false です。
paginate?: true に設定されている場合、オブジェクトは複数のページにまたがって印刷される場合があります (オブジェクトを垂直方向に表示するのに必要な枚数分)。幅が広すぎて 1 ページに収まりきらないオブジェクトの部分を処理する試みは実行されません。

false の場合、1 ページのみが印刷されます。print-page-numbers?false に設定されていない限り、ページ番号 (1) が印刷されます。オブジェクトに伸長性がある場合、オブジェクトはページの境界に収まるように、伸長または圧縮されます。

既定値は true です。
multi-part?: true に設定されている場合、呼び出しは、複数部分シーケンスの一部とされます。戻り値は、保持され、シーケンスの次の部分で使用される PrintRootFrame になります。シーケンスの最後の部分に対して、multi-part?false に設定します。通常、multi-part?true に設定する場合は、paginate?false に設定することが推奨されます。複数部分シーケンスについての詳細は、使用上の解説を参照してください。

false の場合、戻り値は null になります。

既定値は false です。
printing-frame: 印刷に使用される PrintRootFrame です。null に設定されている場合、自動的に新しいものが割り当てられてます。

これは、複数部分印刷において便利です。multi-part? が true に設定され、パラメータが非 null の場合、これは戻り値にもなります。

既定値は null です。
show-printer-dialog?:
true の場合は、印刷ダイアログがポップアップ表示され、プリンタまたはその設定を変更できるようになります。そうでない場合は、既定のプリンタがあれば、それが印刷に使用されます。
show-printer-dialog?false で、印刷操作を開始しようとしているアプレットに特権がない場合は、エラーがスローされます。
from-page:
印刷する開始ページ。
このパラメータは、show-printer-dialog? の値が false であると無視されます。これはまた、printing-frame が非 NULL のときにも無視されます。
to-page:
印刷する最終ページ。
このパラメータは、show-printer-dialog? の値が false であると無視されます。これはまた、printing-frame が非 NULL のときにも無視されます。
orientation: PageOrientation を定めます。

printing-frame が非 null である場合は、このパラメータは無視されます。
owner:
ポップアップ印刷ダイアログ ボックスのオーナー View を指定します。
オーナーの指定がない場合、GuiManager によって既定のオーナーが選択されます (可能な場合)。
ダイアログがオーナーを持たない場合、null を使用します。
printer-name:
null の場合、印刷するプリンタ名を設定します。Printer.get-printers プロシージャによって返される値の一つである必要があります。
null で、ターゲットとなるプリンタが見つからない場合、show-dialog?false であればエラーがスローされます。そうでなければ、printer-namenull として扱われます。
null の場合、プリンタ名は既定で Printer.get-current-printerになります。
printing-frame が非 null の場合、このパラメータは無視されます。
既定では、null です。
page-description:
null の場合、印刷に使用されるページのサイズを規定します。印刷ジョブが送られるプリンタに関する Printer.get-page-description プロシージャによって返される値の一つでなければなりません。
ターゲットとなるプリンタがサポートしていない場合、このパラメータは無視されます。
printing-frame が非 null の場合、このパラメータは無視されます。
media-source:
null の場合、印刷に使用するプリンタトレイを指定します。それは、印刷ジョブが送られるプリンタの Printer.get-media-source プロシージャによって返される値の一つでなければなりません。
対象となるプリンタがサポートしていない場合、このパラメータは無視されます。
color:
指定された場合、プリンタ出力をカラー (yes) か、モノクロ (no) か指定することが出来ます。
このパラメータは、対象のプリンタがこの機能をサポートしない場合、無視されます。
collate:
指定された場合、複数部印刷する時プリンタが部単位で印刷するかを指定することが出来ます。
このパラメータは、対象のプリンタがこの機能をサポートしない場合、無視されます。
duplex:
指定された場合、両面印刷の方法を指定することが出来ます。
このパラメータは、対象のプリンタがこの機能をサポートしない場合、無視されます。
copies: 正の数が指定された場合、部数を指定します。そうでない場合、以前印刷された部数が規定値として使用されます。規定値は 1 です。

戻り値

multi-part?false の場合、戻り値は null になります。これは、print-graphic のほとんどのユーザーは、戻り値を無視できることを意味します。

multi-part?true に設定されている場合、印刷に使用される PrintRootFrame が返されます。printing-frame パラメータを介して指定されている場合、これが戻り値になります。非 null が返ってくるということは、システム リソースが印刷に割り当てられていることを意味します。したがって、multi-part? が true に設定された print-graphic を使用すると、戻り値が保持され、次の部分の printing-frame パラメータとして使用されます。呼び出しコードは、シーケンスの最後の部分において、null の戻り値を予測するようにします。

プログラミング注意事項

パジネーションと複数部分印刷はどのような組み合わせでも使用できます。
一ページでグラフィックを印刷したい場合、paginate?multi-part?false を設定してください。
複数部分印刷を行う場合は、各部分をパジネートするかどうか選択できます。パジネーションは、pagination? パラメータに true を設定することで簡単に要求できます。
複数部分印刷の設定は少し複雑です。最後のひとつを除いて全ての部分で、multi-part? パラメータに true を設定する必要があります。各部分で返される PrintRootFrame を使用し、それを printing-frame のパラメータとして次の部分に渡してください。paginate?も、trueの場合は、各部分もパジネートされます。各部分は 1 からページ番号をふられるので、複数部分印刷を行う場合は通常 print-page-numbers?false を設定したほうがよいでしょう。

単純な複数部分印刷の使用は、次のようになります。
{let pf:#PrintRootFrame}
{let rect1:Graphic={Fill width=1in, height=1in, background="red"}}
{let rect2:Graphic={Fill width=1in, height=1in, background="lime"}}
{let rect3:Graphic={Fill width=1in, height=1in, background="blue"}}

{CommandButton label="test printing",
    {on Action do
        set pf = {print-graphic rect1,
                     print-page-numbers?=false,
                     multi-part?=true
                 }
        {if pf != null then || Otherwise it was canceled
            set pf = {print-graphic rect2,
                         print-page-numbers?=false,
                         multi-part?=true,
                         printing-frame=pf
                     }
            {if pf != null then
                set pf = {print-graphic rect3,
                             print-page-numbers?=false,
                             multi-part?=false, || false for last call
                             printing-frame=pf
                         }
            }
        }
    }
}

注意事項

非特権アプレットが print-page-numbers?false に設定されている print-graphic を呼び出すと、Curl 実行環境がすべてのページを、その印刷ジョブに使用される印刷デバイスのキューに入れた後、印刷に送信されたページ数を示すダイアログ ボックスがポップアップします。

印刷ジョブは、print-graphic に対する複数の呼び出しから構成することもできます。詳細については、multi-part? を参照してください。