TPDFContentStateTracker
Úpravy toku obsahu
Popis
Aplikuje parsované instrukce obsahu na jeden trvalý účinný grafický stav a kompletní zásobník q/QPoužívejte jeden sledovač napříč po sobě jdoucími instancemi
TPDFContentProgram, když stránka ukládá svou logickou posloupnost obsahu do několika streamů
Syntaxe
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;Poznámky
RegisterExtGStategs
RegisterXObjectDo/BBox
RegisterFont
RegisterProperty/Properties/MCIDClearProperties
BeginContentStreamBDCEMCSetContentLocation
InitializeForm/BBox
q/Q
SetInitialClipBoundsWW*q/Q
OnMeasureText ověří a předkompiluje jeden externí slovník grafického stavu, takže opakované operátory Tj znovu neprohledávají strom prostředků PDFTJ předkompiluje metadata streamů Image, Form a PostScript, takže opakované operátory ' se převedou vyhledáváním názvů v konstantním čase; meze Formu používají matici Formu, účinné CTM a všechny čtyři rohy "
RestoreUnderflowCount naváže název prostředku na jeho nepřímý objekt a rozsah prostředků, takže shodné názvy ve vnořeném obsahu nekolidujíQ předkompiluje jeden pojmenovaný slovník seznamu vlastností z prostředků MarkedContentUnderflowCount stránky a zachytí jeho položky i volitelné EMC, takže operátory označeného obsahu odkazující na vlastnost názvem se převedou vyhledáváním v konstantním čase;
Reset zahodí všechny zaregistrované slovníky vlastností