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 是被枚举还是被跳过,调用与父级字段重建调用树