THPDFRenderDocAccess Record

Vincula o renderer aos serviços do documento para resolver referências, ler streams, decodificar imagens, localizar fontes e avaliar visibilidade de camadas

Declaração

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;

Unidade

HPDFPageRenderer

Campos

CampoFinalidade
ContextPonteiro de contexto fornecido pelo chamador, passado como primeiro argumento de cada callback; o documento se vincula aqui
SharedCacheCache do renderer que várias páginas podem compartilhar quando ShareRenderCaches está habilitado
ShareRenderCachesTrue quando o documento permite que renderers concorrentes compartilhem caches de decodificação
ResolveObjectResolvedor genérico de referências indiretas para qualquer tipo de objeto; adicionado porque os resolvedores tipados retornam nil para tipos que não correspondem
ResolveDictionaryResolve uma referência indireta para um objeto dicionário, nil para outros tipos
ResolveStreamResolve uma referência indireta para um objeto stream
ReadDecodedStreamBytesLê um stream totalmente decodificado em um array de bytes
AcquireDecodedImageStreamDecodifica um XObject de imagem em um handle de bitmap compartilhado e com contagem de referências
DecodeImageStreamDecodifica um XObject de imagem em um bitmap de propriedade do chamador
BeginProgressiveImageDecodeInicia um decoder progressivo cancelável para um stream de imagem grande
DecodeImageRegionDecodifica uma sub-região de uma imagem em um tamanho de pixel solicitado
AcquireDecodedImageRegionVariante de região que retorna um handle de bitmap compartilhado e com contagem de referências
DecodeInlineImageDecodifica uma imagem inline de bytes brutos ID..EI e do conjunto de chaves BI normalizado, contornando o cache de números de objeto; hook nil significa que imagens inline não são renderizadas
DecodeColorKeyMaskTransforma o array /Mask de color-key de um image XObject em uma soft mask branca e preta do tamanho da imagem; nil quando a imagem não tem uma máscara de color-key utilizável, e um hook nil desenha essas imagens sem máscara
ResolveFontDictLocaliza um dicionário de fonte pela chave de recurso, seguindo referências indiretas nos níveis /Resources e /Font; nil quando ausente
EvalOCVisibilityAvalia um objeto de propriedade /OC contra os estados de camada do documento; hook nil ou resultado True significa que o conteúdo é desenhado
CancellationTokenCancellation token conferido durante operações de decodificação longas
ColourIntentIntent de tratamento de cor aplicado ao graphics state renderizado
FallbackPolicySeleciona se recursos não suportados são ignorados, reportados ou tratados como falhas estritas
FallbackDiagnosticLimitLimita o número de mensagens de diagnóstico coletadas durante o fallback
OverprintPreviewHabilita a simulação de overprint preview
ProofICCProfileBytes do perfil ICC usados no lado de proofing do pipeline de cores
OutputICCProfileBytes do perfil ICC que descrevem o dispositivo de saída
BlackPointCompensationHabilita a compensação de ponto preto na transformação ICC
SeparationPlateNome da plate de separação a isolar; vazio renderiza normalmente

Notas de uso

APIs relacionadas