Posetioci operatora sadržaja

HotPDF izlaže svaku operaciju u dekodiranom toku sadržaja kroz interfejs posetioca sa brojanjem referenci i callback događaja Delphi-a bez zahteva da pozivaoci pišu PDF tokenizer

Pregled i merenje

THPDFContentOperatorEventData identifikuje faze početka toka, operatora i kraja toka i izveštava indeks operacije, ime operatora, broj operanada, opseg bajtova i determinističko stanje pre izvršenja trenutnog operatera izvora

Stanje sadrži dubine stanja grafike, objekta teksta, označenog sadržaja i kompatibilne sekcije, dok THPDFContentOperatorView pruža po zahtevu samo čitljive bajtove operacije ili operanda bez kopiranja kompletnog toka izvora

Transformacija ili odbijanje

Callback-ovi biraju coaKeep, coaDelete, coaReplace, coaStop ili coaReject

Akcije brisanja i zamene postaju sortirane nepreklapajuće AST izmene; odbijanje ne objavljuje izlaz, a coaStop uspešno završava nakon trenutnog operatora

Snimci stanja slede originalni prolaz izvora čak i kada se operacija zameni, čineći ponovljeni pregled determinističkim

Budžeti i validacija

THPDFContentOperatorVisitOptions.Default konfiguriše MaxSourceBytes, MaxOperators, MaxLexemes, MaxDepth, MaxReplacementBytes i ValidateOutput

Otkazivanje se proverava tokom prolaza, a transformisani izlaz se ponovo parsira pod istim ograničenjima leksema, dubine i operatora pre nego što može da bude vraćen ili upisan u učitanu stranicu

Neispravan ulaz, nevažeći izlaz zamene, izuzeci callback-a, neuspesi ograničenja i eksplicitno odbijanje razlikuju se po THPDFContentOperatorVisitStatus i dijagnostici

Registracija učitane stranice

PDF.ContentOperatorVisitor := Visitor;
PDF.OnContentOperator := HandleContentOperator;
Options := THPDFContentOperatorVisitOptions.Default;
if PDF.VisitLoadedPageContentOperators(0, True, Options,
  CancellationToken, Statistics) then
  UseStatistics(Statistics);

Posetilac interfejsa pokreće se pre callback događaja kada su oba dodeljena, a oba se izvršavaju sinhrono na niti pozivaoca

Sa ApplyChanges=True, HotPDF prvo validira kompletni transformisani tok, zatim zamenjuje sadržaj stranice u jednoj izmeni grafa i poništava keševe prevedene liste prikaza, rastera, diska, dekodera fonta i sličica

Povezani API-ji