THPDFRenderDocAccess Record
Binder renderaren till dokumenttjänster för att lösa referenser, läsa strömmar, dekoda bilder, hitta typsnitt och utvärdera lagersynlighet
Deklaration
THPDFRenderDocAccess= record
Context: Pointer;
SharedCache: THPDFRendererSharedCache;
ShareRenderCaches: boolean;
// v2.375.0 generic indirect-ref resolver (any object type). The typed
// Resolve* fields below predate it and return nil for non-matching
// types, which silently dropped indirect refs to arrays (e.g. a
// /ColorSpace entry pointing at a [/Separation ...] array object)
ResolveObject: function(Context: Pointer; Obj: THPDFObject): THPDFObject;
ResolveDictionary: function(Context: Pointer; Obj: THPDFObject): THPDFDictionaryObject;
ResolveStream: function(Context: Pointer; Obj: THPDFObject): THPDFStreamObject;
ReadDecodedStreamBytes: function(Context: Pointer; Stream: THPDFStreamObject; out Bytes: TBytes): boolean;
AcquireDecodedImageStream: function(Context: Pointer;
Stream: THPDFStreamObject): IHPDFDecodedBitmapHandle;
DecodeImageStream: function(Context: Pointer; Stream: THPDFStreamObject): TBitmap;
BeginProgressiveImageDecode: function(Context: Pointer;
Stream: THPDFStreamObject;
CancellationToken: THPDFCancellationToken): IHPDFProgressiveImageDecoder;
DecodeImageRegion: function(Context: Pointer; Stream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
DesiredWidth, DesiredHeight: Integer): TBitmap;
AcquireDecodedImageRegion: function(Context: Pointer;
Stream: THPDFStreamObject; RegionLeft, RegionTop, RegionRight,
RegionBottom, DesiredWidth,
DesiredHeight: Integer): IHPDFDecodedBitmapHandle;
// v2.425.0 inline-image decoder: builds a throwaway stream from the raw
// ID..EI bytes and the normalised BI key set, then decodes it without the
// ObjectNumber-keyed cache (inline images have no object number). Returns
// a TBitmap the caller owns, or nil on failure. Nil hook = inline images
// are not rendered (legacy behaviour)
DecodeInlineImage: function(Context: Pointer; const Bytes: TBytes;
const Keys: THPDFInlineImgKeys): TBitmap;
// Colour-key /Mask array of an image XObject as a soft mask, white where
// the image shows and black where it is masked out. Returns a TBitmap the
// caller owns, or nil when the image has no usable colour-key mask; a nil
// hook draws such images unmasked
DecodeColorKeyMask: function(Context: Pointer;
Stream: THPDFStreamObject): TBitmap;
// Look up a font dictionary by resource key in a Resources dict, following
// indirect refs at both /Resources and /Font levels. Returns nil if absent
ResolveFontDict: function(Context: Pointer; PageObj: THPDFDictionaryObject;
const FontKey: AnsiString): THPDFDictionaryObject;
// v2.377.0 optional-content visibility oracle: evaluates an /OC property
// object (OCG or OCMD) against the document's layer states. Nil hook or
// a True result means the content is drawn
EvalOCVisibility: function(Context: Pointer; PropObj: THPDFObject): boolean;
CancellationToken: THPDFCancellationToken;
ColourIntent: Integer;
FallbackPolicy: THPDFRenderFallbackPolicy;
FallbackDiagnosticLimit: Integer;
OverprintPreview: boolean;
ProofICCProfile: TBytes;
OutputICCProfile: TBytes;
BlackPointCompensation: boolean;
SeparationPlate: AnsiString;
end;
Enhet
HPDFPageRenderer
Fält
| Fält | Syfte |
|---|---|
Context | Anroparsuppgiven kontextpekare som skickas som första argument till varje callback; dokumentet binder sig själv här |
SharedCache | Renderarens cache som flera sidor kan dela när ShareRenderCaches är aktiverat |
ShareRenderCaches | Sant när dokumentet låter samtidiga renderare dela dekodningscacherna |
ResolveObject | Generisk resolver för indirekta referenser för valfri objekttyp; tillkom eftersom de typade resolverarna returnerar nil för typer som inte matchar |
ResolveDictionary | Resolverar en indirekt referens till ett ordboksobjekt, nil för andra typer |
ResolveStream | Resolverar en indirekt referens till ett strömobjekt |
ReadDecodedStreamBytes | Läser en ström helt dekodad till en bytearray |
AcquireDecodedImageStream | Dekodar en bild-XObject till ett delat, referensräknat bitmappshandtag |
DecodeImageStream | Dekodar en bild-XObject till en bitmapp som anroparen äger |
BeginProgressiveImageDecode | Startar en avbrytbar progressiv dekodare för en stor bildström |
DecodeImageRegion | Dekodar en delregion av en bild vid en begärd pixelstorlek |
AcquireDecodedImageRegion | Regionvariant som returnerar ett delat, referensräknat bitmappshandtag |
DecodeInlineImage | Dekodar en inline-bild från råa ID..EI-byte och det normaliserade BI-nyckelsetet, förbi objektnummervärnscachen; en nil-hook betyder att inline-bilder inte renderas |
DecodeColorKeyMask | Gör om en bild-XObjects color-key-/Mask-array till en mjuk mask i vitt och svart i bildens storlek; nil när bilden saknar användbar color-key-mask, och en nil-hook ritar sådana bilder omaskerade |
ResolveFontDict | Slår upp en typsnittsordbok på resursnyckel och följer indirekta referenser på nivåerna /Resources och /Font; nil när den saknas |
EvalOCVisibility | Utvärderar ett /OC-egenskapsobjekt mot dokumentets lagertillstånd; nil-hook eller ett True-resultat betyder att innehållet ritas |
CancellationToken | Avbrytningstoken som kontrolleras under långa dekodningsåtgärder |
ColourIntent | Färgbehandlingsavsikt som tillämpas på det renderade grafiktillståndet |
FallbackPolicy | Styr huruvida funktioner som inte stöds ignoreras, rapporteras eller behandlas som strikta fel |
FallbackDiagnosticLimit | Sätter ett tak för antalet diagnostiska meddelanden som samlas in under fallback |
OverprintPreview | Aktiverar simulering av överprintningsförhandsvisning |
ProofICCProfile | ICC-profilbyte som används för korrektursidan av färgpipelinen |
OutputICCProfile | ICC-profilbyte som beskriver utmatningsenheten |
BlackPointCompensation | Aktiverar svartpunktskompensering i ICC-transformeringen |
SeparationPlate | Namnet på den färgseparation som ska isoleras; tomt värde renderar normalt |
Användningsanteckningar
- THotPDF binder varje hook via sin interna hjälpare
MakeRenderDocAccess, så applikationer får en färdig record i stället för att fylla i en själv - Egna renderingsbackends läser dessa hooks från
THPDFPageRenderBackendRequesti stället för att gå rakt in i dokumentet - Lämna
DecodeInlineImageellerEvalOCVisibilitysom nil för att återställa det äldre beteendet med att hoppa över inline-bilder och rita allt valfritt innehåll