Headless cross references

HPDFHeadlessXRef levert de gevalideerde xref-stream- en object-stream-indexering die THPDFHeadlessDocument gebruikt; dictionaries en object-stream-headers gebruiken de gedeelde object parser, terwijl big-endian-velden de gedeelde Direct File byte reader gebruiken

HPDFHeadlessDecodeXRefRows(Dictionary, DecodedBytes, MaxObjects, CancellationToken) leest directe Type-, Size-, W- en optionele Index-entries nadat de aanroeper filters en predictors heeft gedecodeerd

THPDFHeadlessXRefRows is een array van THPDFHeadlessXRefRow-records met ObjectNumber en de gedeelde THPDFDirectXrefEntry als Entry; entry-soorten nul, één en twee identificeren vrije, directe en gecomprimeerde objecten

Breedtes lopen van nul tot en met acht bytes, weggelaten velden gebruiken de PDF-defaults, offsets houden Int64-precisie, en subsection-overlaps, payload-length-mismatches, out-of-range generations en unsigned overflow worden geweigerd vóór het indexeren van objecten

HPDFHeadlessReadObjectStreamIndex(Dictionary, DecodedBytes, MaxObjects, MaxDecodedBytes, CancellationToken) valideert directe Type=ObjStm, N en First, en parseert daarna de numerieke header via de gedeelde parser

THPDFHeadlessObjectStreamMembers is een array van THPDFHeadlessObjectStreamMember-records met ObjectNumber, zero-based decoded-payload-Offset en positieve Length; dubbele objectnummers, niet-integer-paren, ongeldige offsets en geconfigureerde budgetten worden geweigerd

HPDFHeadlessObjectStreamBody(Members, DecodedBytes, MemberIndex, ExpectedObjectNumber) geeft de exacte member-slice terug nadat het autoritatieve xref-membernummer tegen diens containerheader is gecontroleerd; de document-aanroeper parseert die slice via de gedeelde parser

EHPDFHeadlessXRefError rapporteert een boodschap en een read-only LimitExceeded-vlag, terwijl annulering EHPDFOperationCancelled raiset; aanroepers zijn eigenaar van dictionaries en gedecodeerde buffers, en teruggegeven arrays bevatten value-records

De provider regelt byte-indexering en validatie; revisieprecedence, hybride side-section-merging, filter-decodering, decryptie, object caching en document-eigendom blijven bij de document loader

Exacte numerieke waarden

De gedeelde parser behoudt de oorspronkelijke bron-token wanneer conversie naar Single de waarde zou afronden of diens magnitude boven 16777216 uitkomt; cross-reference- en object-stream-integer-readers prefereren die token voor exacte Int64-offsets en -indices, terwijl kleine exacte integers het allocation-efficiënte pad houden

Tests gebruiken de gedeelde writer en onafhankelijke compressed-object-PDF's, dekken 40-bit-offsets, widths/defaults, predictors, sparse ranges, hybride precedence, misvormde member-indices en revisiecycli, en behouden de oorspronkelijke allocation- en throughput-drempels van de parser