TPDFContentStateTracker
Modifica dei flussi di contenuto
Descrizione
Applica le istruzioni di contenuto analizzate a un unico stato grafico effettivo persistente e a uno stack completo q/QRiutilizzare un solo tracker attraverso istanze
TPDFContentProgram consecutive quando una pagina memorizza la sua sequenza logica di contenuto in più stream
Sintassi
Delphi
TPDFContentStateTracker = Class Procedure Reset; Procedure ClearExtGStates; Procedure ClearXObjects; Procedure ClearFonts; Procedure ClearProperties; Function RegisterExtGState(Const ResourceName: AnsiString; Dictionary: TPDFDictionary): Boolean; Function RegisterXObject(Const ResourceName: AnsiString; XObjectStream: TPDFStream; ObjectNumber: Integer = 0): Boolean; Function RegisterFont(Const ResourceName: AnsiString; FontObject: TPDFObject; ResourceScope: Integer): Boolean; Function RegisterProperty(Const ResourceName: AnsiString; PropertyObject: TPDFObject): Boolean; Procedure BeginContentStream; Procedure SetContentLocation(Layer, ContentDepth, ContentInvocationID: Integer); Procedure InitializeForm(Const ParentState: TPDFContentGraphicsState; Const FormMatrix: TPDFContentMatrix; MatrixKnown: Boolean; BBoxLeft, BBoxBottom, BBoxRight, BBoxTop: Double); Procedure SetInitialClipBounds(Left, Bottom, Right, Top: Double); Procedure Apply(Inst: TPDFContentInstruction); Function Snapshot: TPDFContentGraphicsState; Property StackDepth: Integer; Property RestoreUnderflowCount: Integer; Property MarkedContentUnderflowCount: Integer; Property ResourceScope: Integer; Property OnMeasureText: TPDFContentMeasureTextEvent; End;Osservazioni
RegisterExtGStategs
RegisterXObjectDo/BBox
RegisterFont
RegisterProperty/Properties/MCIDClearProperties
BeginContentStreamBDCEMCSetContentLocation
InitializeForm/BBox
q/Q
SetInitialClipBoundsWW*q/Q
OnMeasureText valida e precompila un dizionario di stato grafico esterno, così gli operatori Tj ripetuti non riscansionano l'albero delle risorse PDFTJ precompila i metadati degli stream Image, Form e PostScript, così gli operatori ' ripetuti si risolvono con lookup di nomi a tempo costante; i limiti del Form usano la matrice del form, la CTM attiva e tutti e quattro gli angoli "
RestoreUnderflowCount collega un nome di risorsa al suo oggetto indiretto e al suo ambito di risorsa, così nomi identici in contenuto annidato non collidonoQ precompila un dizionario di elenco di proprietà denominato a partire dalle risorse MarkedContentUnderflowCount della pagina, catturandone le voci e l'eventuale EMC, così gli operatori di contenuto marcato che riferiscono la proprietà per nome si risolvono con lookup a tempo costante;
Reset scarta tutti i dizionari di proprietà registrati