THPDFPage Class

 

THPDFPage

方法         属性      概述

顶部  上一页  下一页

THPDFPage 表示 PDF 文档中的单个页面

 

单元

HPDFDoc.pas

 

说明

用 THPDFPage 绘制路径、放置文本、渲染图像,并控制尺寸、方向和图形状态等页面级设置

文本坐标需要以字体基线(而不是默认的上边缘位置)为参照时,用 TextFromBaseLine(True);要使用调用方自有的字体程序和字形 ID 时,用 SetEmbeddedGlyphFont 与 DrawEmbeddedGlyphRun;专家级 PDF 操作符需要包进自动的图形状态保存/恢复对时,用 AppendScopedRawContent;折行文本输出需要报告已写字符数、行数和溢出状态时,用 TextOutBoxEx / WideTextOutBoxEx

常规工作流中,实例由 THotPDF 创建并持有:BeginDoc 之后页面经 AddPage、InsertPage 和 CurrentPage 属性到来,用 EndDoc 关闭文档或销毁组件时会释放每一个页面;公有的无参数 Create 构造函数和 Destroy 析构函数供文档会话之外的独立页面对象使用,单元测试就是这样在没有完整组件的情况下检验页面级默认值的

 

使用示例:

 

uses

  ...

  HPDFDoc,

  ...

 

type

   ...

   HPDF: THotPDF;

   TextBoxResult: THPDFTextOutBoxResult;

   ...

 

procedure TForm1.HelloWorldButtonClick(Sender: TObject);

begin

   HPDF.AutoLaunch := true;                                          // Show the PDF after it is created

   HPDF.FileName := '.\HelloWorld.pdf';

   HPDF.BeginDoc;                                                       // Start PDF generation

   HPDF.CurrentPage.TextOut(10, 10, 0, 'Hello World!');  // Write text on the first page

   HPDF.CurrentPage.TextFromBaseLine(true);  // 后续文本 Y 值按基线处理

   HPDF.CurrentPage.TextOut(10, 40, 0, 'Baseline text');

   HPDF.CurrentPage.TextFromBaseLine(false);

   TextBoxResult := HPDF.CurrentPage.TextOutBoxEx(10, 70, 2, 180, 48, 'Wrapped text-box content', jtLeft);

   HPDF.CurrentPage.AppendScopedRawContent('2 w 10 10 120 45 re S');

   HPDF.EndDoc;                                                         // Finalize and save the PDF

end;