Headless 交叉參照

HPDFHeadlessXRef 提供經驗證的 xref-stream 與 object-stream 索引,供 THPDFHeadlessDocument 使用;dictionary 與 object-stream 標頭使用共用的物件解析器,big-endian 欄位則使用共用的 Direct File 位元組讀取器

HPDFHeadlessDecodeXRefRows(Dictionary, DecodedBytes, MaxObjects, CancellationToken) 在呼叫端解完 filter 與 predictor 之後,讀取直接的 Type、Size、W 與選填的 Index 條目

THPDFHeadlessXRefRows 是 THPDFHeadlessXRefRow 記錄陣列,含 ObjectNumber 與共用的 THPDFDirectXrefEntry(作為 Entry);條目種類 0、1、2 分別代表 free、direct 與壓縮物件

寬度範圍 0 到 8 位元組,缺省欄位採 PDF 預設,偏移保留 Int64 精度;子區段重疊、payload 長度不符、超出範圍的 generation 與無號溢位,都會在建立物件索引之前被拒

HPDFHeadlessReadObjectStreamIndex(Dictionary, DecodedBytes, MaxObjects, MaxDecodedBytes, CancellationToken) 驗證直接的 Type=ObjStm、N 與 First,再以共用解析器解析數字標頭

THPDFHeadlessObjectStreamMembers 是 THPDFHeadlessObjectStreamMember 記錄陣列,含 ObjectNumber、零基的已解碼 payload Offset 與正的 Length;重複物件編號、非整數對、無效偏移與設定的預算都會被拒

HPDFHeadlessObjectStreamBody(Members, DecodedBytes, MemberIndex, ExpectedObjectNumber) 會先以權威的 xref 成員編號對照其容器標頭,再回傳精確的成員切片;文件呼叫端以共用解析器解析該切片

EHPDFHeadlessXRefError 回報訊息與唯讀的 LimitExceeded 旗標,取消則丟出 EHPDFOperationCancelled;dictionary 與解碼緩衝區由呼叫端持有,回傳陣列為值記錄

此 provider 負責位元組索引與驗證;修訂優先序、hybrid 側區段合併、filter 解碼、解密、物件快取與文件所有權,仍由文件載入器負責

精確數值

轉成 Single 會造成捨入、或量級超過 16777216 時,共用解析器會保留原始來源 token;cross-reference 與 object-stream 的整數讀取器會優先用該 token 取得精確的 Int64 偏移與索引,小的精確整數則保留省配置的路徑

測試使用共用寫入器與獨立的壓縮物件 PDF,涵蓋 40 位元偏移、寬度/預設、predictor、稀疏範圍、hybrid 優先序、格式錯誤的成員索引與修訂循環,並保留原本解析器的配置與吞吐量門檻