Besøgende for indholdsoperatorer
HotPDF eksponerer hver operation i en afkodet indholdsstrøm gennem en referenceoptalt besøgsgrænseflade og et Delphi-hændelseskald uden at kræve, at kaldere skriver en PDF-tokenizer
Undersøg og mål
THPDFContentOperatorEventData identificerer faserne begynd-strøm, operator og slut-strøm og rapporterer operationsindeks, operatornavn, antal operander, byteområde og deterministisk tilstand, før den aktuelle kildeoperator udføres
Tilstanden indeholder dybder for grafiktilstand, tekstobjekt, markeret indhold og kompatibilitetssektion, mens THPDFContentOperatorView giver efterspurgt skrivebeskyttet adgang til operations- eller operandbytes uden at kopiere hele kildestrømmen
Transformér eller afvis
Callbacks vælger coaKeep, coaDelete, coaReplace, coaStop eller coaReject
Sletnings- og erstatningshandlinger bliver sorterede, ikke-overlappende AST-redigeringer; en afvisning udgiver intet output, og coaStop fuldføres uden fejl efter den aktuelle operator
Tilstandssnapshots følger den oprindelige gennemløb af kilden, også når en operation erstattes, hvilket gør gentagen undersøgelse deterministisk
Budgetter og validering
THPDFContentOperatorVisitOptions.Default konfigurerer MaxSourceBytes, MaxOperators, MaxLexemes, MaxDepth, MaxReplacementBytes og ValidateOutput
Annullering kontrolleres under gennemløbet, og transformeret output parses igen under de samme grænser for leksemer, dybde og operatorer, før det kan returneres eller skrives til en indlæst side
Fejldannet input, ugyldigt erstatningsoutput, callback-undtagelser, grænsefejl og eksplicit afvisning skelnes af THPDFContentOperatorVisitStatus og en diagnosticering
Registrering af indlæst side
PDF.ContentOperatorVisitor := Visitor;
PDF.OnContentOperator := HandleContentOperator;
Options := THPDFContentOperatorVisitOptions.Default;
if PDF.VisitLoadedPageContentOperators(0, True, Options,
CancellationToken, Statistics) then
UseStatistics(Statistics);Grænsefladebesøgeren kører før hændelsescallbacket, når begge er tildelt, og begge udføres synkront på den kaldende tråd
Med ApplyChanges=True validerer HotPDF først den komplette transformerede strøm, erstatter derefter sideindholdet i én grafmutation og ugyldiggør cacher for kompileret displayliste, raster, disk, fontafkoder og miniature