TPDFlibPrinter

列印、VCL、文件建立

描述

提供熟悉 BeginDoc、Canvas、NewPage、EndDoc、Abort 生命週期的元件外觀,但建立的是 PDF 文件,不是送出實體印表機工作

宣告

Uses PDFlibPDFPrinter;

TPDFlibPrinter = Class(TComponent)

參數

BeginDoc開始新的 PDF 文件,並透過 Canvas 公開第一頁
NewPage把目前畫布提交為 PDF 頁面,並開啟下一頁的畫布
EndDoc提交最後一頁,並在已指派目的地時寫出 FileName
Abort捨棄作用中的工作、不寫出其目的地檔案,並把元件重設為空文件
SetPageSize在 BeginDoc 之前以 PDF 點設定直向紙張尺寸

屬性

CanvasBeginDoc 與 EndDoc 或 Abort 之間的作用中 VCL 畫布
FileName選配的 PDF 輸出路徑;空值表示結果只保留在 LibraryInstance
Title工作開始時套用的文件標題
DPI畫布座標解析度,24 到 2400,預設 96
CanvasOptions畫布匯入模式,-1 到 4,預設為向量模式 2
OrientationpoPortrait 或 poLandscape;landscape 會對調設定的紙張尺寸
PaperWidth, PaperHeight直向紙張尺寸,1 到 14400 PDF 點
PageWidth, PageHeight唯讀的有效尺寸,為 DPI 與方向轉換後的畫布像素
PageWidthPoints, PageHeightPoints唯讀的有效尺寸,以 PDF 點計
PageNumber工作進行中為目前頁碼(1 起算),閒置時為零
Printing, Aborted唯讀的生命週期狀態
LibraryInstance持有的 TPDFlib 實例,用於檢查或進一步處理完成的 PDF
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 操作,且絕不開啟列印對話框或存取作業系統的多工緩衝器

工作外圍請用 try/except,且只在工作仍作用中時呼叫 Abort;內部轉換操作失敗會終止工作並設定 Aborted

另請參閱

GetCanvasDC, NewPageFromCanvasDC, RenderPagesToPrintStream