GetRangeSourceDataAvailability
文档管理、渐进式加载、诊断
描述
判断选定的回调支撑 PDF 是否拥有处理页面、交互式表单或间接对象依赖图所需的全部字节
语法
Delphi
Function TPDFlib.GetRangeSourceDataAvailability(DataKind, Index: Integer;
Out Report: WideString): Integer;参数
| DataKind | PDF_RANGE_DATA_PAGE、PDF_RANGE_DATA_FORM 或 PDF_RANGE_DATA_OBJECT |
|---|---|
| Index | 从 1 开始的页码(表单查询为 0),或间接对象编号 |
| Report | 接收 JSON 依赖与字节区间报告 |
返回值
PDF_RANGE_DATA_ERROR (-1) | 参数、源或 PDF 结构无效;请检查 LastErrorCode 和 Report |
|---|---|
PDF_RANGE_DATA_NOT_AVAILABLE (0) | 至少一个必需区间尚不可用 |
PDF_RANGE_DATA_AVAILABLE (1) | 完整依赖图已可用 |
PDF_RANGE_DATA_NOT_PRESENT (2) | 表单查询已完成且文档没有 AcroForm |
报告字段
scope, index, status, available | 标识查询并汇总其结果 |
|---|---|
dependencyGraphComplete | 指示是否检查了每个可达依赖 |
requestedObjects, resolvedObjects, traversedObjects | 用于诊断和调度的对象解析计数器 |
requiredBytes, missingBytes | 重叠区间合并后的去重字节总数 |
requiredRanges, missingRanges | 包含 start 和 end 源偏移(闭区间)的数组 |
error | 可选的机器可读结构或参数错误 |
备注
页面查询只沿目标页面树路径、页面资源、内容流、注释和继承的页面属性进行
表单查询遍历 AcroForm 依赖,并要求 Index 为零
对象查询从给定的交叉引用对象编号开始,在避开父级回边的前提下沿可达的间接引用前进
缺失的范围绝不会被读取;报告为可用的范围可能被解析并加入字节范围缓存
对象数量和依赖深度设有上限,可预测地拒绝恶意或循环结构