Registro THPDFRenderDocAccess
Liga el renderizador 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
| Campo | Propósito |
|---|---|
Context | Puntero de contexto suministrado por quien llama y pasado como primer argumento de cada callback; el documento se liga aquí |
SharedCache | Caché del renderer que varias páginas pueden compartir cuando ShareRenderCaches está activado |
ShareRenderCaches | True cuando el documento permite que renderizadores concurrentes compartan cachés de decodificación |
ResolveObject | Resolvedor genérico de referencias indirectas para cualquier tipo de objeto; se añadió porque los resolvedores tipados devuelven nil para tipos no coincidentes |
ResolveDictionary | Resuelve una referencia indirecta a un objeto diccionario, nil para otros tipos |
ResolveStream | Resuelve una referencia indirecta a un objeto stream |
ReadDecodedStreamBytes | Lee un stream totalmente decodificado en un array de bytes |
AcquireDecodedImageStream | Decodifica un XObject de imagen en un manejador de bitmap compartido y con recuento de referencias |
DecodeImageStream | Decodifica un XObject de imagen en un bitmap propiedad de quien llama |
BeginProgressiveImageDecode | Inicia un decodificador progresivo cancelable para un stream de imagen grande |
DecodeImageRegion | Decodifica una subregión de una imagen con un tamaño de píxel solicitado |
AcquireDecodedImageRegion | Variante de región que devuelve un manejador de bitmap compartido y con recuento de referencias |
DecodeInlineImage | Decodifica una imagen inline desde bytes ID..EI crudos y el conjunto de claves BI normalizado, saltándose la caché de números de objeto; un hook nil significa que las imágenes inline no se renderizan |
DecodeColorKeyMask | Convierte el array /Mask de clave de color de un image XObject en una máscara suave blanca y negra del tamaño de la imagen; nil cuando la imagen no tiene máscara de clave de color utilizable, y un hook nil dibuja tales imágenes sin máscara |
ResolveFontDict | Busca un diccionario de fuente por clave de recurso, siguiendo referencias indirectas en los niveles /Resources y /Font; nil cuando está ausente |
EvalOCVisibility | Evalú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 |
CancellationToken | Token de cancelación comprobado durante operaciones de decodificación largas |
ColourIntent | Intención de manejo de color aplicada al estado gráfico renderizado |
FallbackPolicy | Selecciona si las características no soportadas se ignoran, se informan o se tratan como fallos estrictos |
FallbackDiagnosticLimit | Limita el número de mensajes de diagnóstico recogidos durante el fallback |
OverprintPreview | Activa la simulación de vista previa de overprint |
ProofICCProfile | Bytes de perfil ICC usados para el lado de prueba del pipeline de color |
OutputICCProfile | Bytes de perfil ICC que describen el dispositivo de salida |
BlackPointCompensation | Activa la compensación de punto negro en la transformación ICC |
SeparationPlate | Nombre de la placa de separación que hay que aislar; vacío renderiza con normalidad |
Notas de uso
- THotPDF liga cada hook mediante su helper interno
MakeRenderDocAccess, de modo que las aplicaciones reciben un registro listo en lugar de rellenar uno - Los backends de renderizado personalizados leen estos hooks desde
THPDFPageRenderBackendRequesten lugar de acceder al documento directamente - Deje
DecodeInlineImageoEvalOCVisibilitycomo nil para restaurar el comportamiento heredado de saltarse las imágenes inline y dibujar todo el contenido opcional