TPDFlibPrinter

印刷、VCL、ドキュメント作成

説明

物理プリンタージョブを送信する代わりに PDF 文書を作成しながら、使い慣れた BeginDoc、Canvas、NewPage、EndDoc、Abort のライフサイクルを持つコンポーネントファサードを提供します

宣言

Uses PDFlibPDFPrinter;

TPDFlibPrinter = Class(TComponent)

パラメータ

BeginDoc新しい PDF 文書を開始し、最初のページを Canvas を通じて公開する
NewPage現在のキャンバスを PDF ページとしてコミットし、次のページキャンバスを開きます
EndDoc最終ページを確定し、出力先が割り当てられている場合は FileName に書き込みます
Abort出力先ファイルを書き込まずにアクティブなジョブを破棄し、コンポーネントを空のドキュメントにリセットする
SetPageSizeBeginDoc の前に、縦向き用紙の寸法を PDF ポイントで設定する

プロパティ

CanvasBeginDoc と EndDoc または Abort の間にあるアクティブな VCL キャンバス
FileName任意の PDF 出力パス。空の値では結果を LibraryInstance 内だけに保持します
Titleジョブ開始時に適用する文書タイトル
DPIキャンバス座標解像度は 24 から 2400、既定値は 96
CanvasOptions-1 から 4 までのキャンバスインポートモードで、既定値はベクターモード 2 です
OrientationpoPortrait または poLandscape。横向きでは構成された用紙寸法が入れ替わります
PaperWidth, PaperHeight1~14400 PDF ポイントの縦向き用紙寸法
PageWidth, PageHeightDPI および向きの変換後の、キャンバスピクセル単位の読み取り専用の有効寸法
PageWidthPoints, PageHeightPointsPDF ポイント単位の読み取り専用アクティブ寸法
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 を設定します

関連項目

GetCanvasDC、NewPageFromCanvasDC、RenderPagesToPrintStream