Posjetitelji operatora sadržaja

HotPDF izlaže svaku operaciju u dekodiranom toku sadržaja kroz sučelje posjetitelja s brojanjem referenci i Delphi povratni poziv događaja bez toga da pozivatelji moraju pisati PDF tokenizer

Pregled i mjerenje

THPDFContentOperatorEventData identificira faze početka toka, operatora i kraja toka te izvještava o indeksu operacije, nazivu operatora, broju operanda, opsegu bajtova i determinističkom stanju prije nego se izvrši trenutni izvorni operator

Stanje sadrži dubine stanja grafike, tekstualnog objekta, označenog sadržaja i kompatibilne sekcije, dok THPDFContentOperatorView pruža na zahtjev samo-čitanje operacije ili bajtove operanda bez kopiranja cijelog izvornog toka

Transformiraj ili odbij

Povratni pozivi biraju coaKeep, coaDelete, coaReplace, coaStop ili coaReject

Akcije brisanja i zamjene postaju sortirane nepreklapajuće AST izmjene; odbijanje objavljuje bez izlaza i coaStop se uspješno dovršava nakon trenutnog operatora

Snimke stanja slijede izvorni prolaz izvora čak i kada je operacija zamijenjena, čineći ponovljeni pregled determinističkim

Proračuni i validacija

THPDFContentOperatorVisitOptions.Default konfigurira MaxSourceBytes, MaxOperators, MaxLexemes, MaxDepth, MaxReplacementBytes i ValidateOutput

Otkazivanje se provjerava tijekom prolaza, a transformirani izlaz se ponovno razrješava pod istim ograničenjima leksema, dubine i operatora prije nego se može vratiti ili upisati u učitanu stranicu

Neispravan ulaz, nevaljani izlaz zamjene, iznimke povratnih poziva, kvarovi ograničenja i eksplicitno odbijanje razlikuju se prema THPDFContentOperatorVisitStatus i dijagnostici

Registracija za učitanu stranicu

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

Posjetitelj sučelja pokreće se prije povratnog poziva događaja kada su oba dodijeljena, a oba se izvršavaju sinkrono na pozivnoj niti

S ApplyChanges=True HotPDF najprije potvrđuje cijeli transformirani tok, zatim zamjenjuje sadržaj stranice u jednoj izmjeni grafa i poništava kompajlirane predmemorije popisa prikaza, rastera, diska, font dekodera i sličica

Povezani API-ji