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