Innehållsoperator-visitarer
HotPDF exponerar varje operation i en avkodad innehållsström genom ett referensräknat visitargränssnitt och en Delphi-händelsecallback utan att kräva att anropare skriver en PDF-tokeniserare
Inspektera och mäta
THPDFContentOperatorEventData identifierar begynnelse-ström-, operator- och slut-strömfaserna och rapporterar operationsindex, operatornamn, operandantal, byterintervall och deterministiskt tillstånd före den aktuella källoperatorn körs
Tillståndet innehåller grafikstillstånd-, textobjekt-, markerat-innehåll- och kompatibilitetssektions-djup, medan THPDFContentOperatorView ger on-demand skrivskyddad operation- eller operandbyte utan att kopiera hela källströmmen
Transformera eller avvisa
Callbacks väljer coaKeep, coaDelete, coaReplace, coaStop eller coaReject
Delete- och replace-åtgärder blir sorterade icke-överlappande AST-redigeringar; en avvisning publicerar ingen utdata och coaStop slutförs framgångsrikt efter den aktuella operatorn
Tillståndssnapshots följer den ursprungliga källgenomgången även när en operation ersätts, vilket gör upprepad inspektion deterministisk
Budgetar och validering
THPDFContentOperatorVisitOptions.Default konfigurerar MaxSourceBytes, MaxOperators, MaxLexemes, MaxDepth, MaxReplacementBytes och ValidateOutput
Annullering kontrolleras under genomgången, och transformerad utdata parsas igen under samma lexem-, djup- och operatorgränser innan den kan returneras eller skrivas till en inläst sida
Felformaterad indata, ogiltig ersättningsutdata, callback-undantag, gränsfel och explicit avvisning skiljs åt av THPDFContentOperatorVisitStatus och en diagnostik
Registrering för inlästa sidor
PDF.ContentOperatorVisitor := Visitor;
PDF.OnContentOperator := HandleContentOperator;
Options := THPDFContentOperatorVisitOptions.Default;
if PDF.VisitLoadedPageContentOperators(0, True, Options,
CancellationToken, Statistics) then
UseStatistics(Statistics);
Gränssnittsvisitaren körs före händelsecallbacken när båda är tilldelade, och båda körs synkront på den anropande tråden
Med ApplyChanges=True validerar HotPDF den fullständiga transformerade strömmen först och ersätter sedan sidinnehållet i en grafmutation samt ogiltigförklarar cachear för kompilerade visningslistor, raster, disk, teckensnittsavkodare och miniatyrbilder