print-graphic-pdf (プロシージャ)
public {print-graphic-pdf
graphic:Graphic,
url:#Url,
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:#PDFPrintRootFrame = 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},
page-description:#PRINTER.PrintPageDescription = null,
copies:int = 0,
compress?:bool = true,
metadata:#{HashTable-of String, String} = null
}:#PDFPrintRootFrame
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.BASE.

Graphic から PDF ファイルを作成します。

graphic: エクスポートする Graphic
url: PDF ファイルを書き出す URL。
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?: このパラメータは無視されます。
from-page: 印刷開始ページ番号。
to-page:
印刷する最終ページ。
このパラメータは、show-printer-dialog? の値が false であると無視されます。これはまた、printing-frame が非 NULL のときにも無視されます。
orientation: PageOrientation を定めます。

printing-frame が非 null である場合は、このパラメータは無視されます。
owner:
ポップアップ印刷ダイアログ ボックスのオーナー View を指定します。
オーナーの指定がない場合、GuiManager によって既定のオーナーが選択されます (可能な場合)。
ダイアログがオーナーを持たない場合、null を使用します。
page-description:
null の場合、印刷に使用されるページのサイズを規定します。印刷ジョブが送られるプリンタに関する Printer.get-page-description プロシージャによって返される値の一つでなければなりません。
ターゲットとなるプリンタがサポートしていない場合、このパラメータは無視されます。
printing-frame が非 null の場合、このパラメータは無視されます。
copies: 印刷する部数。このパラメータは常に'1'となります。
compress?:
true が指定されている場合、コンテンツのストリームは圧縮されます。false の場合、コンテンツのストリームは平文の文字列です。
既定値は true です。
metadata: 非 null の場合、出力されるファイルのメタデータにプロパティが設定されます。利用可能なハッシュキーは、"Title"、"Author"、"Subject"、"Keywords"、"Creator" です。

戻り値

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

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

プログラミング注意事項

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

簡単な複数枚綴り印刷の使い方は、次のようになります。
{let pf:#PDFPrintRootFrame}
{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="export to PDF file",
    {on Action do
        {let file-url:#Url =
            {choose-file
                style=FileDialogStyle.save-as,
                title="Select a File, to export PDF"
            }
        }
        {if-non-null file-url then
            set pf = {print-graphic-pdf rect1,
                         file-url,
                         print-page-numbers?=false,
                         multi-part?=true
                     }
            {if pf != null then || Otherwise it was canceled
                set pf = {print-graphic-pdf rect2,
                             null,
                             print-page-numbers?=false,
                             multi-part?=true,
                             printing-frame=pf
                         }
                {if pf != null then
                    set pf = {print-graphic-pdf rect3,
                                 null,
                                 print-page-numbers?=false,
                                 multi-part?=false, || false for last call
                                 printing-frame=pf
                             }
                }
            }
        }
    }
}

注意事項

非特権アプレットが書き込み許可無しで Url をパスすると、例外がスローされます。(詳細は PrivilegedUrl を御覧下さい。)
プリントジョブは print-graphic-pdf の複数の呼び出しから成り立っています。詳細は multi-part? を御覧下さい。

例外のスロー

このバージョンでは、Windows のみでのサポートです。他のプラットフォームでは、print-graphic-pdf を呼び出すとエラーがスローされます。
PermissionDeniedFileException — ユーザーが url の作成のための十分なアクセス権を持っていない場合。
MissingFileExceptionurl のパス中のディレクトリが存在しない場合。
FileException — この操作の実行中に何らかの障害が発生した場合、別の種類のFileException がスローされる可能性があります。
導入: バージョン 8.0