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