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 的 Canvas 导入模式,默认为矢量模式 2 |
Orientation | poPortrait 或 poLandscape;横向会交换配置的纸张尺寸 |
PaperWidth, PaperHeight | 从 1 到 14400 PDF 点的纵向纸张尺寸 |
PageWidth, PageHeight | 只读的有效尺寸,以经 DPI 和方向转换后的画布像素为单位 |
PageWidthPoints, PageHeightPoints | 只读的有效尺寸,以 PDF 点为单位 |
PageNumber | 作业期间从 1 开始的当前页,空闲时为零 |
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 操作,且绝不打开打印对话框或访问操作系统假脱机程序
在作业周围使用 try/except,仅当作业仍处于活动状态时调用 Abort,失败的内部转换操作会终止作业并设置 Aborted