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
OrientationpoPortrait 或 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

另请参阅

GetCanvasDC、NewPageFromCanvasDC、RenderPagesToPrintStream