Enregistrement THPDFRenderDocAccess

Lie le renderer aux services du document pour résoudre les références, lire les flux, décoder les images, localiser les polices et évaluer la visibilité des couches

Déclaration

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

Champs

ChampObjectif
ContextPointeur de contexte fourni par l'appelant, passé en premier argument de chaque callback ; le document se lie ici
SharedCacheCache de renderer que plusieurs pages peuvent partager quand ShareRenderCaches est activé
ShareRenderCachesTrue quand le document laisse des renderers concurrents partager les caches de décodage
ResolveObjectRésolveur générique de références indirectes pour tout type d'objet ; ajouté parce que les résolveurs typés renvoient nil pour les types non correspondants
ResolveDictionaryRésout une référence indirecte vers un objet dictionnaire, nil pour les autres types
ResolveStreamRésout une référence indirecte vers un objet flux
ReadDecodedStreamBytesLit un flux entièrement décodé dans un tableau d'octets
AcquireDecodedImageStreamDécode un XObject d'image en un handle de bitmap partagé à comptage de références
DecodeImageStreamDécode un XObject d'image en un bitmap propriété de l'appelant
BeginProgressiveImageDecodeDémarre un décodeur progressif annulable pour un flux d'image volumineux
DecodeImageRegionDécode une sous-région d'une image à une taille de pixel demandée
AcquireDecodedImageRegionVariante par région renvoyant un handle de bitmap partagé à comptage de références
DecodeInlineImageDécode une image inline depuis des octets bruts ID..EI et l'ensemble de clés BI normalisé, en contournant le cache de numéros d'objet ; un hook nil signifie que les images inline ne sont pas rendues
DecodeColorKeyMaskTransforme le tableau /Mask de color-key d’un image XObject en masque doux blanc et noir à la taille de l’image ; nil quand l’image n’a pas de masque color-key exploitable, et un hook nil dessine de telles images sans masque
ResolveFontDictRecherche un dictionnaire de police par clé de ressource, en suivant les références indirectes aux niveaux /Resources et /Font ; nil quand absent
EvalOCVisibilityÉvalue un objet de propriété /OC contre les états de couche du document ; un hook nil ou un résultat True signifie que le contenu est dessiné
CancellationTokenToken d'annulation vérifié pendant les opérations de décodage longues
ColourIntentIntention de traitement des couleurs appliquée à l'état graphique rendu
FallbackPolicySélectionne si les fonctionnalités non prises en charge sont ignorées, rapportées ou traitées comme des échecs stricts
FallbackDiagnosticLimitPlafonne le nombre de messages de diagnostic collectés pendant le repli
OverprintPreviewActive la simulation d'aperçu de surimpression
ProofICCProfileOctets de profil ICC utilisés pour le côté épreuve du pipeline couleur
OutputICCProfileOctets de profil ICC décrivant le périphérique de sortie
BlackPointCompensationActive la compensation du point noir dans la transformation ICC
SeparationPlateNom de la plaque de séparation à isoler ; vide, le rendu est normal

Notes d'utilisation

API associées