THPDFRenderDocAccess Record
Koppelt de renderer aan documentservices voor het oplossen van verwijzingen, het lezen van streams, het decoderen van afbeeldingen, het vinden van fonts en het beoordelen van laagzichtbaarheid
Declaratie
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;
Eenheid
HPDFPageRenderer
Velden
| Veld | Doel |
|---|---|
Context | Contextpointer van de aanroeper die als eerste argument van elke callback wordt doorgegeven; het document bindt zichzelf hier |
SharedCache | Renderercache die meerdere pagina’s kunnen delen wanneer ShareRenderCaches is ingeschakeld |
ShareRenderCaches | True wanneer het document gelijktijdige renderers decode-caches laat delen |
ResolveObject | Generieke resolver voor indirecte verwijzingen, voor elk objecttype; toegevoegd omdat de getypeerde resolvers nil teruggeven voor niet-matchende types |
ResolveDictionary | Lost een indirecte verwijzing naar een dictionary-object op, nil voor andere types |
ResolveStream | Lost een indirecte verwijzing naar een stream-object op |
ReadDecodedStreamBytes | Leest een stream volledig gedecodeerd in een bytearray |
AcquireDecodedImageStream | Decodeert een image XObject naar een gedeelde, referentietelde bitmap-handle |
DecodeImageStream | Decodeert een image XObject naar een bitmap in eigendom van de aanroeper |
BeginProgressiveImageDecode | Start een annuleerbare progressieve decoder voor een grote afbeeldingsstream |
DecodeImageRegion | Decodeert een subgebied van een afbeelding op een gevraagde pixergrootte |
AcquireDecodedImageRegion | Gebiedsvariant die een gedeelde, referentietelde bitmap-handle teruggeeft |
DecodeInlineImage | Decodeert een inline-afbeelding uit rauwe ID..EI-bytes en de genormaliseerde BI-sleutelset, zonder de objectnummercache; een nil-hook betekent dat inline-afbeeldingen niet worden gerenderd |
DecodeColorKeyMask | Zet de color-key-/Mask-array van een beeld-XObject om in een wit-zwart soft mask op de grootte van de afbeelding; nil wanneer de afbeelding geen bruikbare color-key-mask heeft, en een nil-hook tekent zulke afbeeldingen ongemaskeerd |
ResolveFontDict | Zoekt een fontdictionary op via een resourcesleutel, waarbij indirecte verwijzingen op het /Resources- en /Font-niveau worden gevolgd; nil wanneer afwezig |
EvalOCVisibility | Beoordeelt een /OC-propertyobject tegen de laagtoestanden van het document; een nil-hook of een True-resultaat betekent dat de content wordt getekend |
CancellationToken | Annuleringstoken dat tijdens lange decodeerbewerkingen wordt gecontroleerd |
ColourIntent | Kleurintent die op de gerenderde graphics state wordt toegepast |
FallbackPolicy | Bepaalt of niet-ondersteunde functies worden genegeerd, gerapporteerd of als strikte fouten behandeld |
FallbackDiagnosticLimit | Begrenst het aantal diagnostische meldingen dat tijdens het terugvallen wordt verzameld |
OverprintPreview | Schakelt de overprint-preview-simulatie in |
ProofICCProfile | ICC-profielbytes voor de proofzijde van de kleurpipeline |
OutputICCProfile | ICC-profielbytes die het uitvoerapparaat beschrijven |
BlackPointCompensation | Schakelt black point compensation in de ICC-transformatie in |
SeparationPlate | Naam van de te isoleren sepaplaat; leeg betekent normaal renderen |
Gebruiksopmerkingen
- THotPDF bindt elke hook via zijn interne helper
MakeRenderDocAccess, zodat toepassingen een kant-en-klaar record ontvangen in plaats van er zelf een in te vullen - Eigen render-backends lezen deze hooks uit
THPDFPageRenderBackendRequestin plaats van rechtstreeks in het document te grazen - Laat
DecodeInlineImageofEvalOCVisibilitynil om het legacy-gedrag te herstellen waarbij inline-afbeeldingen worden overgeslagen en alle optionele content wordt getekend