Odwolania krzyżowe headless
HPDFHeadlessXRef dostarcza zwalidowane indeksowanie strumieni xref i object-stream używane przez THPDFHeadlessDocument; słowniki i nagłówki object-stream używają współdzielonego parsera obiektów, podczas gdy pola big-endian współdzielonego czytnika bajtów Direct File
HPDFHeadlessDecodeXRefRows(Dictionary, DecodedBytes, MaxObjects, CancellationToken) odczytuje bezpośredne wpisy Type, Size, W i opcjonalny Index po tym, jak wywołujący zdekodował filtry i predyktory
THPDFHeadlessXRefRows to tablica rekordów THPDFHeadlessXRefRow zawierających ObjectNumber i współdzielony THPDFDirectXrefEntry jako Entry; rodzaje wpisu zero, jeden i dwa identyfikują obiekty wolne, bezpośrednie i skompresowane
Szerokości mieszczą się od zera do ośmiu bajtów, pominięte pola używają domyślnych wartości PDF, offsety zachowują precyzję Int64, a nakładanie podsekcji, niedopasowania długości ładunku, poza zakresem generacje i przepełnienie bez znaku są odrzucane przed indeksowaniem obiektów
HPDFHeadlessReadObjectStreamIndex(Dictionary, DecodedBytes, MaxObjects, MaxDecodedBytes, CancellationToken) waliduje bezpośrednie Type=ObjStm, N i First, po czym parsuje nagłówek numeryczny współdzielonym parserem
THPDFHeadlessObjectStreamMembers to tablica rekordów THPDFHeadlessObjectStreamMember z ObjectNumber, zerowym Offset w zdekodowanym ładunku i dodatnim Length; zduplikowane numery obiektów, pary niecałkowite, niepoprawne offsety i skonfigurowane budżety są odrzucane
HPDFHeadlessObjectStreamBody(Members, DecodedBytes, MemberIndex, ExpectedObjectNumber) zwraca dokładny wycinek członka po sprawdzeniu autorytatywnego numeru członka xref względem nagłówka kontenera; wywołujący dokument parsuje ten wycinek współdzielonym parserem
EHPDFHeadlessXRefError raportuje komunikat i flagę tylko do odczytu LimitExceeded, a anulowanie podnosi EHPDFOperationCancelled; wywołujący są właścicielami słowników i zdekodowanych buforów, a zwrócone tablice zawierają rekordy wartości
Dostawca obsługuje indeksowanie i walidację bajtów; pierwszeństwo rewizji, scalanie hybrydowych sekcji bocznych, dekodowanie filtrów, deszyfrowanie, cache obiektów i własność dokumentu pozostają po stronie wczytywania dokumentu
Dokładne wartości numeryczne
Współdzielony parser zachowuje oryginalny token źródła, gdy konwersja do Single zaokrąglałaby wartość albo jej magnitude przekracza 16777216; czytniki liczb całkowitych odwołań krzyżowych i object-stream preferują ten token dla dokładnych offsetów i indeksów Int64, podczas gdy małe dokładne liczby całkowite zachowują ścieżkę alokacyjnie wydajną
Testy używają współdzielonego writera i niezależnych PDF z obiektami skompresowanymi, obejmują offsety 40-bit, szerokości/domyślne wartości, predyktory, rzadkie zakresy, pierwszeństwo hybrydowe, zniekształcone indeksy członków i cykle rewizji oraz zachowują oryginalne progi alokacji i przepustowości parsera