Besøkere for innholdsoperatorer
HotPDF eksponerer hver operasjon i en dekodet innholdsstrøm gjennom et referanse-tallsett grensesnitt og en Delphi-hendelseskallerback, uten at kallere trenger å skrive en PDF-tokeniserer
Inspiser og mål
THPDFContentOperatorEventData identifiserer startstrøm-, operator- og sluttstrøm-fasene og rapporterer operasjonsindeksen, operatornavnet, antall operander, byteområdet og deterministisk tilstand før den aktuelle kildeoperatoren utføres
Tilstanden inneholder dybder for grafikk-tilstand, tekstobjekt, markert innhold og kompatibilitetsseksjon, mens THPDFContentOperatorView gir på-forespørsel skrivebeskyttede operasjons- eller operand-bytes uten å kopiere hele kilde-strømmen
Transformer eller avvis
Tilbakeringinger velger coaKeep, coaDelete, coaReplace, coaStop eller coaReject
Slett- og erstatt-handlinger blir sorterte ikke-overlappende AST-redigeringer; en avvisning publiserer ingen utdata og coaStop fullføres vellykket etter gjeldende operator
Tilstandsoyeblikksbilder følger den opprinnelige kildetraverseringen selv når en operasjon erstattes, noe som gjør gjentatt inspeksjon deterministisk
Budsjetter og validering
THPDFContentOperatorVisitOptions.Default konfigurerer MaxSourceBytes, MaxOperators, MaxLexemes, MaxDepth, MaxReplacementBytes og ValidateOutput
Kansellering kontrolleres under traverseringen, og transformert utdata parses på nytt under de samme leksem-, dybde- og operatorgrensene før den kan returneres eller skrives til en lastet side
Feilformet input, ugyldig erstatningsutdata, unntak fra tilbakeringing, grensefeil og eksplisitt avvisning skilles av THPDFContentOperatorVisitStatus og en diagnostikk
Registrering for lastet side
PDF.ContentOperatorVisitor := Visitor;
PDF.OnContentOperator := HandleContentOperator;
Options := THPDFContentOperatorVisitOptions.Default;
if PDF.VisitLoadedPageContentOperators(0, True, Options,
CancellationToken, Statistics) then
UseStatistics(Statistics);
Grensesnittbesøkeren kjører før hendelses-tilbakeringen når begge er tildelt, og begge utføres synkront på den kallende tråden
Med ApplyChanges=True validerer HotPDF den fullstendige transformerte strømmen først, og erstatter deretter sideinnholdet i én grafmuterer og ugyldiggjør kompilerte visningsliste-, raster-, disk-, skriftdekoder- og miniatyrbuffere