Headless Cross References

HPDFHeadlessXRef tillhandahåller den validerade xref-ström- och objektströmsindexeringen som THPDFHeadlessDocumentanvänder; ordlistor och objektströmhuvuden använder den gemensamma objekttolkaren, medan big-endian-fält använder den gemensamma Direct File-byteläsaren

HPDFHeadlessDecodeXRefRows(Dictionary, DecodedBytes, MaxObjects, CancellationToken) läser direkta Type, Size, Woch valfria Index poster efter att anroparen avkodat filter och prediktorer

THPDFHeadlessXRefRows är en array av THPDFHeadlessXRefRow poster som innehåller ObjectNumber och den gemensamma THPDFDirectXrefEntry som Entry; posttyperna noll, ett och två identifierar fria, direkta och komprimerade objekt

Bredder löper från noll till åtta byte, utelämnade fält använder PDF-standarder, offset behåller Int64-precision, och delsektionsöverlapp, nyttolastlängdsmismatch, generationer utanför intervallet och teckenlöst överlopp avvisas innan objekt indexeras

HPDFHeadlessReadObjectStreamIndex(Dictionary, DecodedBytes, MaxObjects, MaxDecodedBytes, CancellationToken) validerar direkta Type=ObjStm, N, and Firstoch tolkar sedan det numeriska huvudet genom den gemensamma tolkaren

THPDFHeadlessObjectStreamMembers är en array av THPDFHeadlessObjectStreamMember poster med ObjectNumber, nollbaserad avkodad-nyttolast Offsetoch positiv Length; dubbletterade objektnummer, icke-heltalspar, ogiltiga offset och konfigurerade budgetar avvisas

HPDFHeadlessObjectStreamBody(Members, DecodedBytes, MemberIndex, ExpectedObjectNumber) returnerar den exakta medlemsslice:n efter att ha kontrollerat det auktoritativa xref-medlemsnumret mot dess behållarhuvud; dokumentanroparen tolkar den slicen genom den gemensamma tolkaren

EHPDFHeadlessXRefError rapporterar ett meddelande och en skrivskyddad LimitExceeded flagga, medan avbrott kastar EHPDFOperationCancelled; anropare äger ordlistor och avkodade buffertar, och returnerade arrayer innehåller värdeposter

Leverantören hanterar byteindexering och validering; revisionsföreträde, hybrid sidosektionssammanfogning, filteravkodning, dekryptering, objektcachning och dokumentägarskap förblir hos dokumentinläsaren

Exakta numeriska värden

Den gemensamma tolkaren behåller den ursprungliga källtokenen när konvertering till Single skulle avrunda värdet eller dess magnitud överskrider 16777216; korsreferens- och objektström-heltalsläsare föredrar den tokenen för exakta Int64-offset och index, medan små exakta heltal behåller den allokeringseffektiva vägen

Tester använder den gemensamma skrivaren och oberoende komprimerat-objekt-PDF:er, täcker 40-bitars offset, bredder/standarder, prediktorer, glesa intervall, hybridföreträde, felformade medlemsindex och revisionscykler, och bevarar den ursprungliga tolkarens allokerings- och genomströmningströsklar