TPDFlibPrinter
印刷、VCL、ドキュメント作成
説明
物理プリンタージョブを送信する代わりに PDF 文書を作成しながら、使い慣れた BeginDoc、Canvas、NewPage、EndDoc、Abort のライフサイクルを持つコンポーネントファサードを提供します
宣言
Uses PDFlibPDFPrinter;
TPDFlibPrinter = Class(TComponent)パラメータ
BeginDoc | 新しい PDF 文書を開始し、最初のページを Canvas を通じて公開する |
|---|---|
NewPage | 現在のキャンバスを PDF ページとしてコミットし、次のページキャンバスを開きます |
EndDoc | 最終ページを確定し、出力先が割り当てられている場合は FileName に書き込みます |
Abort | 出力先ファイルを書き込まずにアクティブなジョブを破棄し、コンポーネントを空のドキュメントにリセットする |
SetPageSize | BeginDoc の前に、縦向き用紙の寸法を PDF ポイントで設定する |
プロパティ
Canvas | BeginDoc と EndDoc または Abort の間にあるアクティブな VCL キャンバス |
|---|---|
FileName | 任意の PDF 出力パス。空の値では結果を LibraryInstance 内だけに保持します |
Title | ジョブ開始時に適用する文書タイトル |
DPI | キャンバス座標解像度は 24 から 2400、既定値は 96 |
CanvasOptions | -1 から 4 までのキャンバスインポートモードで、既定値はベクターモード 2 です |
Orientation | poPortrait または poLandscape。横向きでは構成された用紙寸法が入れ替わります |
PaperWidth, PaperHeight | 1~14400 PDF ポイントの縦向き用紙寸法 |
PageWidth, PageHeight | DPI および向きの変換後の、キャンバスピクセル単位の読み取り専用の有効寸法 |
PageWidthPoints, PageHeightPoints | PDF ポイント単位の読み取り専用アクティブ寸法 |
PageNumber | ジョブ中の 1 から始まる現在ページ。待機中は 0 |
Printing, Aborted | 読み取り専用のライフサイクル状態 |
LibraryInstance | 完成した PDF の検査または追加処理に使用する、所有された TPDFlib インスタンス |
LastErrorCode | 直前の PDF 操作から取得した基盤ライブラリのエラーコード |
例
Printer := TPDFlibPrinter.Create(nil);
try
Printer.FileName := 'report.pdf';
Printer.BeginDoc;
Printer.Canvas.TextOut(72, 72, 'First page');
Printer.NewPage;
Printer.Canvas.TextOut(72, 72, 'Second page');
Printer.EndDoc;
finally
Printer.Free;
end;備考
構成プロパティはアクティブな文書中には変更できず、ライフサイクルの誤用では EPDFlibPrinter が発生します
コンポーネントは自身のライブラリとキャンバスを所有し、ジョブごとに独立文書を作成し、完了文書を後続 API 操作用に保持し、印刷ダイアログや OS スプーラーへアクセスしません
ジョブを try/except で囲み、ジョブがアクティブな間だけ Abort を呼び出します。内部変換操作が失敗するとジョブを終了し、Aborted を設定します