Parsiranje jednostavnih objekata zasnovano na rasponima
Jedinica HPDFParser parsira samostalne PDF rečnike i nizove bez kopiranja tokena ili podstringova ugnježdenih kontejnera
Ulazne tač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 rečnik ili niz je u vlasništvu pozivaoca i sadrži normalne trajne HotPDF objekte bez zavisnosti od životnog veka izvorne string
Statistika prikaza
THPDFParserViewStatistics izlaže SourceBytes, TokenViewCount, MaterializedStringCount, MaterializedBytes, ObjectCount, ContainerCount, MaxDepth, ErrorCount i Valid
Prikazi tokena broje ograničene opsege izvora, dok brojači materijalizovanih stringova pokrivaju bajtove kopirane u trajne PDF imena, ključeve i stringove
Podržani objekti
Parser prepoznaje imena, cele brojeve, realne brojeve, boolean vrednosti, null vrednosti, indirektne reference, literal stringove, heksadecimalne stringove, nizove i rečnike
Literal stringovi čuvaju ugnježdene zagrade, izbegnute delimitere, oktalne begove i izbegnute nastavke linije, dok se PDF belina i komentari ignorišu
Neescapovani CR, CRLF i LF završeci redova unutar literal stringova dekodiraju se u jedan LF po završetku reda; escapovani znakovi za povratak na početak reda poput
ili
ostaju CR bajtovi, a nastavci linije kosom crtom ne dodaju bajtove
Ugnježdeni kontejneri dele jedan kursor nad nepromenljivim ulazom, rekurzija je ograničena i duplikati ključeva rečnika zamenjuju ranije vrednosti podudaranjem osetljivim na velika i mala slova
Neispravni delimiteri pomeraju kursor oporavka bez preskakanja susednih važećih tokena; tela nizova data bez otvorene uglaste zagrade takođe se oporavljaju od promašenih zatvorenih zagrada i prijavljuju ih u ErrorCount
Karakteristike performansi
Imena i stringovi se materijalizuju jednom na svojoj granici trajnog objekta, numerička konverzija čita izvorne bajtove direktno i indeks otvorenog adresiranja lokalan za operaciju sprečava kvadratno skeniranje duplikata dok gradi velike rečnike
Win32 regresiona učvršćena komponenta od 30.000 parova smanjila je bajtove alokacije pet prolaza sa 50.866.510 na 17.936.800 i proteklo vreme sa 3.656 ms na 46 ms
Pogledajte takođe: Skalabilno učitavanje PDF-a sa nasumičnim pristupom, Ograničeni budžeti PDF parsera