THPDFRenderDocAccess Record
Lega il renderer ai servizi del documento per risolvere riferimenti, leggere stream, decodificare immagini, trovare font e valutare la visibilità dei livelli
Dichiarazione
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;
Unità
HPDFPageRenderer
Campi
| Campo | Scopo |
|---|---|
Context | Puntatore di contesto fornito dal chiamante e passato come primo argomento di ogni callback; il documento vi lega se stesso |
SharedCache | Cache del renderer che più pagine possono condividere quando ShareRenderCaches è abilitato |
ShareRenderCaches | True quando il documento permette a renderer concorrenti di condividere le cache di decodifica |
ResolveObject | Resolver generico di riferimenti indiretti per qualsiasi tipo di oggetto; aggiunto perché i resolver tipizzati restituiscono nil per i tipi non corrispondenti |
ResolveDictionary | Risolve un riferimento indiretto a un oggetto dizionario, nil per gli altri tipi |
ResolveStream | Risolve un riferimento indiretto a un oggetto stream |
ReadDecodedStreamBytes | Legge uno stream completamente decodificato in un array di byte |
AcquireDecodedImageStream | Decodifica un XObject immagine in un handle di bitmap condiviso e con conteggio dei riferimenti |
DecodeImageStream | Decodifica un XObject immagine in una bitmap di proprietà del chiamante |
BeginProgressiveImageDecode | Avvia un decoder progressivo cancellabile per uno stream di immagine grande |
DecodeImageRegion | Decodifica una sotto-regione di un'immagine alla dimensione in pixel richiesta |
AcquireDecodedImageRegion | Variante per regione che restituisce un handle di bitmap condiviso e con conteggio dei riferimenti |
DecodeInlineImage | Decodifica un'immagine inline dai byte grezzi ID..EI e dall'insieme di chiavi BI normalizzato, bypassando la cache per numero d'oggetto; un hook nil significa che le immagini inline non vengono renderizzate |
DecodeColorKeyMask | Trasforma l'array color-key /Mask di un XObject immagine in una maschera morbida bianco-e-nera della dimensione dell'immagine; nil quando l'immagine non ha una color-key mask utilizzabile, e un hook nil disegna tali immagini senza maschera |
ResolveFontDict | Cerca un dizionario di font per chiave di risorsa, seguendo i riferimenti indiretti ai livelli /Resources e /Font; nil quando assente |
EvalOCVisibility | Valuta un oggetto proprietà /OC contro gli stati dei livelli del documento; un hook nil o un risultato True significa che il contenuto viene disegnato |
CancellationToken | Token di cancellazione controllato durante le operazioni di decodifica lunghe |
ColourIntent | Intent di gestione del colore applicato allo stato grafico renderizzato |
FallbackPolicy | Seleziona se le funzionalità non supportate sono ignorate, riportate o trattate come fallimenti rigidi |
FallbackDiagnosticLimit | Limita il numero di messaggi diagnostici raccolti durante il fallback |
OverprintPreview | Abilita la simulazione dell'anteprima overprint |
ProofICCProfile | Byte del profilo ICC usati per il lato di proofing della pipeline del colore |
OutputICCProfile | Byte del profilo ICC che descrive il dispositivo di output |
BlackPointCompensation | Abilita la compensazione del punto nero nella trasformazione ICC |
SeparationPlate | Nome della lastra di separazione da isolare; vuoto renderizza normalmente |
Note d'uso
- THotPDF lega ogni hook tramite il suo helper interno
MakeRenderDocAccess, così le applicazioni ricevono un record pronto invece di doverne compilare uno - I backend di rendering personalizzati leggono questi hook da
THPDFPageRenderBackendRequestinvece di accedere direttamente al documento - Lascia
DecodeInlineImageoEvalOCVisibilitynil per ripristinare il comportamento legacy di saltare le immagini inline e disegnare tutto il contenuto opzionale