Compose

页面版面、分页、Form XObject

描述

TPDFlibDynamicComponent 的抽象方法,在局部坐标中绘制组件的一个片段,并报告其已用边界和延续状态

语法

Function TPDFlibDynamicComponent.Compose(
  Const Context: TPDFlibDynamicPageContext;
  Out ComposeResult: TPDFlibDynamicPageResult): Integer;
  Virtual; Abstract;

参数

Context.LibraryInstance片段应通过其绘制的已附加 TPDFlib 实例
Context.PageNumber目标页码,尽管回调运行期间库会选择一个隔离的临时页面
Context.CompositionIndex片段提交时获得的基于 1 的编号
Context.DestinationLeft, Context.DestinationTop从组合调用传入的目标槽位位置
Context.AvailableWidth, Context.AvailableHeight周围 Form XObject 的自然画布尺寸

结果记录

HasContent片段绘制了可见内容时为 True
HasMoreContent组件可以生成另一个片段时为 True
UsedWidth, UsedHeight从局部坐标零开始且应包围所有可见组件内容的已用矩形

备注

有内容结果要求 UsedWidth 与 UsedHeight 是有限的正值,且处于 AvailableWidth 与 AvailableHeight 之内

无内容结果仅在 HasMoreContent 为 False 且两个已用尺寸都为零时有效

回调可以使用绘制与内容 API,但不得更改文档、页面或嵌套的绘制容器

会话在进行任何放置决定之前,先通过 ValidComposeResult 校验 ComposeResult

返回零会拒绝该尝试,不提交组件或目标状态;抛出的异常在会话清理完临时状态后继续传播

返回值

1片段结果会被提交以进行验证和放置
0该尝试被拒绝,组件或目标状态不发生任何变化

另请参阅

TPDFlibDynamicComponent, TPDFlibDynamicPageContext, TPDFlibDynamicPageResult, ValidComposeResult, ComposeNextLayout, CloneComponent