Record THPDFRenderDocAccess

Liga el renderer a los servicios del documento para resolver referencias, leer streams, decodificar imágenes, localizar fuentes y evaluar la visibilidad de capas

Declaración

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;

Unidad

HPDFPageRenderer

Campos

CampoPropósito
ContextPuntero de contexto suministrado por quien llama, pasado como primer argumento de cada callback; el documento se liga aquí
SharedCacheCaché del renderer que varias páginas pueden compartir cuando ShareRenderCaches está activo
ShareRenderCachesTrue cuando el documento permite que renderers concurrentes compartan las cachés de decodificación
ResolveObjectResolver genérico de referencias indirectas para cualquier tipo de objeto; se agregó porque los resolvers tipados devuelven nil para tipos que no coinciden
ResolveDictionaryResuelve una referencia indirecta a un objeto diccionario, nil para otros tipos
ResolveStreamResuelve una referencia indirecta a un objeto stream
ReadDecodedStreamBytesLee un stream totalmente decodificado a un array de bytes
AcquireDecodedImageStreamDecodifica un image XObject a un handle de bitmap compartido con conteo de referencias
DecodeImageStreamDecodifica un image XObject a un bitmap propiedad de quien llama
BeginProgressiveImageDecodeInicia un decoder progresivo cancelable para un stream de imagen grande
DecodeImageRegionDecodifica una subregión de una imagen a un tamaño en píxeles solicitado
AcquireDecodedImageRegionVariante de región que devuelve un handle de bitmap compartido con conteo de referencias
DecodeInlineImageDecodifica una inline image desde los bytes crudos ID..EI y el conjunto de claves BI normalizado, saltándose la caché por número de objeto; un hook nil significa que las inline images no se renderizan
DecodeColorKeyMaskConvierte el arreglo color-key /Mask de un image XObject en una soft mask blanca y negra del tamaño de la imagen; nil cuando la imagen no tiene una máscara color-key utilizable, y un hook nil dibuja tales imágenes sin máscara
ResolveFontDictBusca un diccionario de fuente por clave de recurso, siguiendo referencias indirectas en los niveles /Resources y /Font; nil cuando no existe
EvalOCVisibilityEvalúa un objeto de propiedad /OC contra los estados de capa del documento; un hook nil o un resultado True significa que el contenido se dibuja
CancellationTokenCancellation token comprobado durante operaciones de decodificación largas
ColourIntentIntent de manejo de color aplicado al graphics state renderizado
FallbackPolicySelecciona si las funciones no soportadas se ignoran, se reportan o se tratan como fallos estrictos
FallbackDiagnosticLimitAcota la cantidad de mensajes de diagnóstico recolectados durante el fallback
OverprintPreviewActiva la simulación de overprint preview
ProofICCProfileBytes del perfil ICC usados para el lado de proofing del pipeline de color
OutputICCProfileBytes del perfil ICC que describe el dispositivo de salida
BlackPointCompensationActiva la compensación de punto negro en la transformación ICC
SeparationPlateNombre de la placa de separación a aislar; vacío renderiza con normalidad

Notas de uso

APIs relacionadas