THPDFObjStmQuarantineReason 类型
报告类型 2 xref 加载遍历期间 /Type /ObjStm 容器被隔离的原因(Roadmap 010)
声明
THPDFObjStmQuarantineReason= (osqrNotAStream, osqrBadDictionary,
osqrBadHeader, osqrBadStreamSize, osqrDecryptFailed,
osqrDecompressFailed, osqrFirstOutOfRange, osqrHeaderUnparsable,
osqrContainerException, osqrMemberUnparsable);
单元
HPDFDoc
值
| 值 | 含义 |
|---|---|
osqrNotAStream | 容器对象缺失或不是流对象 |
osqrBadDictionary | 容器字典或流负载缺失 |
osqrBadHeader | /N 或 /First 条目无效(非正数、为零或大得离谱) |
osqrBadStreamSize | 容器流大小为空或超出支持的最大值 |
osqrDecryptFailed | 加密容器无法解密(加密过滤器不可用或 AES/RC4 解密失败) |
osqrDecompressFailed | 过滤器解码对容器没有产出任何输出 |
osqrFirstOutOfRange | /First 偏移越过了已解码的容器字节 |
osqrHeaderUnparsable | 解码出的头部没有给出任何对象编号/偏移对 |
osqrContainerException | 解码容器时发生意外异常,因此将其隔离而不是中止整个遍历 |
osqrMemberUnparsable | 容器解码成功但某个成员正文解析失败;兄弟成员互不影响 |
使用说明
- 该原因出现在通过隔离对象流信息 API 返回的 THPDFObjStmQuarantineInfo 记录的 Reason 字段中,同时还有诊断字符串和尚未解析的成员对象编号
- 隔离是失败隔离手段:独立容器继续加载,只有受影响的成员被报告为丢失
- 容器级原因在一次加载的恢复重试间按容器去重,而 osqrMemberUnparsable 记录是成员级的,按受影响成员逐个重复