Запис THPDFRenderDocAccess

Прив'язує рендерер до сервісів документа для розв'язання посилань, читання потоків, декодування зображень, пошуку шрифтів і оцінювання видимості шарів

Оголошення

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

Поля

ПолеПризначення
ContextВказівник контексту від викликача, що передається першим аргументом кожного callback; документ прив'язує себе тут
SharedCacheКеш рендерера, яким можуть спільно користуватися кілька сторінок, коли увімкнено ShareRenderCaches
ShareRenderCachesTrue, коли документ дозволяє паралельним рендерерам спільно користуватися кешами декодування
ResolveObjectЗагальний розв'язувач непрямих посилань для будь-якого типу об'єктів; доданий, бо типізовані розв'язувачі повертають nil для неспівпадних типів
ResolveDictionaryРозв'язує непряме посилання на об'єкт-словник; nil для інших типів
ResolveStreamРозв'язує непряме посилання на об'єкт-потік
ReadDecodedStreamBytesЧитає потік повністю декодованим у масив байтів
AcquireDecodedImageStreamДекодує XObject-зображення у спільний дескриптор растрової карти з підрахунком посилань
DecodeImageStreamДекодує XObject-зображення у растрову карту у володінні викликача
BeginProgressiveImageDecodeЗапускає придатний до скасування прогресивний декодер для великого потоку зображення
DecodeImageRegionДекодує підобласть зображення за запитаним піксельним розміром
AcquireDecodedImageRegionРегіонний варіант, що повертає спільний дескриптор растрової карти з підрахунком посилань
DecodeInlineImageДекодує inline-зображення із сирих байтів ID..EI і нормалізованої множини ключів BI, оминаючи кеш за номером об'єкта; nil-гачок означає, що inline-зображення не рендеряться
DecodeColorKeyMaskПеретворює масив color-key /Mask XObject зображення на біло-чорну м'яку маску розміру зображення; nil, коли зображення не має придатної color-key маски, а nil-гачок малює такі зображення без маскування
ResolveFontDictШукає словник шрифту за ключем ресурсу, простежуючи непрямі посилання на рівнях /Resources і /Font; nil, коли відсутній
EvalOCVisibilityОцінює об'єкт властивості /OC щодо станів шарів документа; nil-гачок чи результат True означає, що вміст малюється
CancellationTokenТокен скасування, що перевіряється під час довгих операцій декодування
ColourIntentНамір обробки кольору, що застосовується до відрендерованого графічного стану
FallbackPolicyВизначає, чи непідтримувані можливості ігноруються, звітуються чи вважаються строгими невдачами
FallbackDiagnosticLimitОбмежує кількість діагностичних повідомлень, зібраних під час відкочування
OverprintPreviewУвімкнює симуляцію попереднього перегляду overprint
ProofICCProfileБайти ICC-профіля для доказової сторони колірного конвеєра
OutputICCProfileБайти ICC-профіля, що описує пристрій виводу
BlackPointCompensationУвімкнює компенсацію чорної точки в ICC-перетворенні
SeparationPlateНазва плашкової форми для ізоляції; порожня — рендеринг звичайний

Примітки щодо використання

Пов'язані API