Parsiranje jednostavnih objekata temeljeno na rasponima

Jedinica HPDFParser parsira samostalne PDF rječnike i nizove bez kopiranja tokena ili podnizova ugniježđenih spremnika

Ulazne točke

function HPDFParserParseSimpleDictionary(
  const Data: AnsiString;
  RecursionLevel: Integer = 0): THPDFDictionaryObject;

function HPDFParserParseSimpleDictionaryWithStatistics(
  const Data: AnsiString;
  out Statistics: THPDFParserViewStatistics;
  RecursionLevel: Integer = 0): THPDFDictionaryObject;

function HPDFParserParseSimpleArray(
  const Data: AnsiString): THPDFArrayObject;

function HPDFParserParseSimpleArrayWithStatistics(
  const Data: AnsiString;
  out Statistics: THPDFParserViewStatistics): THPDFArrayObject;

Vraćeni rječnik ili niz je u vlasništvu pozivatelja i sadrži normalne postojane HotPDF objekte bez ovisnosti o životnom vijeku izvorne niske

Statistika prikaza

THPDFParserViewStatistics izlaže SourceBytes, TokenViewCount, MaterializedStringCount, MaterializedBytes, ObjectCount, ContainerCount, MaxDepth, ErrorCount i Valid

Prikazi tokena broje ograničene raspone izvora, dok brojači materijaliziranih niska pokrivaju bajtove kopirane u trajne PDF nazive, ključeve i niske

Podržani objekti

Parser prepoznaje nazive, cijele brojeve, realne brojeve, booleove, nulove, neizravne reference, doslovne niske, heksadecimalne niske, nizove i rječnike

Doslovne niske sačuvaju ugniježđene zagrade, izbjegnute graničnike, oktalne escapeove i izbjegnute nastavke redaka, dok se PDF razmaknica i komentari zanemaruju

Neescapirani CR, CRLF i LF završeci redaka unutar doslovnih niski dekodiraju se u jedan LF po završetku retka; escapirani povratnici kočije poput \r ili \015 ostaju CR bajtovi, a nastavci redaka s obrnutom kosom crtom ne dodaju bajtove

Ugniježđeni spremnici dijele jedan kursor nad nepromjenjivim ulazom, rekurzija je ograničena, a duplicirani ključevi rječnika zamjenjuju ranije vrijednosti uz podudaranje koje razlikuje velika i mala slova

Deformirani graničnici pomiču kursor oporavka bez preskakanja susjednih valjanih tokena; tijela polja dostavljena bez otvorene zagrade oporavljaju se i od zalutalih zatvorenih zagrada te ih izvještavaju u ErrorCount-u

Karakteristike performansi

Nazivi i niske materijaliziraju se jednom na svojoj granici postojanog objekta, numerička konverzija čita izvorne bajtove izravno, a lokalni indeks s otvorenim adresiranjem za rad sprječava kvadratno skeniranje duplikata tijekom izgradnje velikih rječnika

Win32 regresijski fiksure od 30 000 parova smanjio je bajtove dodjele u pet prolaza s 50 866 510 na 17 936 800 i proteklo vrijeme s 3 656 ms na 46 ms

Također pogledajte: Skalabilno i PDF učitavanje s nasumičnim pristupom, Ograničeni proračuni PDF parsera