Запись THPDFRenderDocAccess

Привязывает рендерер к сервисам документа для разрешения ссылок, чтения stream, декодирования изображений, поиска шрифтов и вычисления видимости слоёв

Объявление

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;

Модуль

HPDFPageRenderer

Поля

ПолеНазначение
ContextПереданный вызывающим кодом указатель контекста, который идёт первым аргументом в каждом callback; документ привязывает здесь себя
SharedCacheКэш рендерера, которым могут делиться несколько страниц при включённом ShareRenderCaches
ShareRenderCachesTrue, когда документ позволяет параллельным рендерерам делиться кэшами декодирования
ResolveObjectУниверсальный распознаватель косвенных ссылок для любого типа объекта; добавлен потому, что типизированные распознаватели возвращают nil для несовпадающих типов
ResolveDictionaryРазрешает косвенную ссылку на словарь, nil для других типов
ResolveStreamРазрешает косвенную ссылку на объект-stream
ReadDecodedStreamBytesЧитает stream, полностью декодированный в массив байтов
AcquireDecodedImageStreamДекодирует image XObject в разделяемый дескриптор bitmap со ссылочным подсчётом
DecodeImageStreamДекодирует image XObject в bitmap, владение которым получает вызывающий код
BeginProgressiveImageDecodeЗапускает отменяемый прогрессивный декодер для большого image stream
DecodeImageRegionДекодирует подобласть изображения в запрошенном пиксельном размере
AcquireDecodedImageRegionВариант для области, возвращающий разделяемый дескриптор bitmap со ссылочным подсчётом
DecodeInlineImageДекодирует inline-изображение из сырых байтов ID..EI и нормализованного набора ключей BI, минуя кэш по номерам объектов; nil-хук означает, что inline-изображения не отрисовываются
DecodeColorKeyMaskПревращает массив color-key /Mask изображения XObject в бело-чёрную soft mask размером с изображение; nil, когда у изображения нет пригодного color-key mask, а nil-хук рисует такие изображения без маски
ResolveFontDictИщет словарь шрифта по ресурсному ключу, следуя косвенным ссылкам на уровнях /Resources и /Font; nil, когда отсутствует
EvalOCVisibilityВычисляет объект свойства /OC против состояний слоёв документа; nil-хук или True означает, что содержимое рисуется
CancellationTokenCancellation token, проверяемый при долгих операциях декодирования
ColourIntentIntent обработки цвета, применяемый к отрисованному графическому состоянию
FallbackPolicyВыбирает, игнорируются ли неподдерживаемые возможности, сообщаются или считаются строгими сбоями
FallbackDiagnosticLimitОграничивает число диагностических сообщений, собираемых при откате
OverprintPreviewВключает симуляцию предпросмотра overprint
ProofICCProfileБайты ICC-профиля для proofing-стороны цветового конвейера
OutputICCProfileБайты ICC-профиля, описывающего выходное устройство
BlackPointCompensationВключает компенсацию чёрной точки в ICC-преобразовании
SeparationPlateИмя изолируемой цветоделённой формы; пустое значение означает обычную отрисовку

Примечания по использованию

Связанные API