TPDFlibPrinter
列印、VCL、文件建立
描述
提供熟悉 BeginDoc、Canvas、NewPage、EndDoc、Abort 生命週期的元件外觀,但建立的是 PDF 文件,不是送出實體印表機工作
宣告
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;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