GetRangeSourceDataAvailability

文档管理、渐进式加载、诊断

描述

判断选定的回调支撑 PDF 是否拥有处理页面、交互式表单或间接对象依赖图所需的全部字节

语法

Delphi

Function TPDFlib.GetRangeSourceDataAvailability(DataKind, Index: Integer;
  Out Report: WideString): Integer;

参数

DataKindPDF_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 为零

对象查询从给定的交叉引用对象编号开始,在避开父级回边的前提下沿可达的间接引用前进

缺失的范围绝不会被读取;报告为可用的范围可能被解析并加入字节范围缓存

对象数量和依赖深度设有上限,可预测地拒绝恶意或循环结构