EnumPageContentStatesEx
页面操作
描述
跟踪选定页面的指令,并可选地在每个 Do 操作符处按当时有效的图形状态和资源作用域下行进入 Form XObject 内容
语法
Delphi
Function EnumPageContentStatesEx(AfterInstruction: Boolean; MaxFormDepth: Integer; Var States: Array Of TPDFlibContentGraphicsState): Integer;参数
AfterInstruction 为 true 时选择每个算子之后的快照,为 false 时选择每个算子之前的快照
MaxFormDepth 选择要执行的嵌套 Form 层数:0 仅保留页面级指令,超过 64 的值被限制为 64
States 接收调用方提供的数组能容纳的尽可能多的记录
返回值
快照总数(包括放不进 States 的记录);未选择文档或页面内容层无法解析时为 0
备注
先用空数组调用一次取得数量,分配目标后再调用一次填充
Form 的执行遵循图形状态隔离、Form 矩阵连接、/BBox 裁剪和当前资源选择
子状态继承其 Do 算子时生效的有效 UseBlackPtComp 值,随后应用 Form 局部的 ExtGState 变更,且不泄漏回调用方
拥有自身 /Resources 字典的 Form 专用该字典;没有的 Form 为兼容早期 PDF 文件而继承调用方的资源字典
重复出现的 Form 流每次枚举只解码和解析一次,之后每次调用独立执行
活动路径的环检测和深度限制可防止无界递归,同时不抑制来自不同调用分支的有效复用
AfterInstruction 为 true 时,嵌套快照先于包含它的 Do 快照出现,因为算子在其后代之后才完成;之前快照采用相反的前序
FormTraversalStatus 与 FormDescendantCount 报告每个 Form 是被枚举还是被跳过,调用与父级字段重建调用树