Záznam THPDFRenderDocAccess

Váže renderer na služby dokumentu: resolve referencí, čtení streamů, dekódování obrázků, vyhledávání fontů a vyhodnocování viditelnosti vrstev

Deklarace

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;

Jednotka

HPDFPageRenderer

Pole

PoleÚčel
ContextKontextový ukazatel dodaný volajícím, předávaný jako první argument každého callbacku; dokument se tady sám naváže
SharedCacheCache rendereru, kterou si může několik stránek sdílet, když je zapnuté ShareRenderCaches
ShareRenderCachesTrue, když dokument dovolí souběžným rendererům sdílet dekódovací cache
ResolveObjectObecný resolver nepřímých referencí pro jakýkoli typ objektu; přibyl, protože typované resolvers vrací nil u nesedících typů
ResolveDictionaryRozhodne nepřímou referenci na objekt slovníku, nil u ostatních typů
ResolveStreamRozhodne nepřímou referenci na stream objekt
ReadDecodedStreamBytesPřečte stream úplně dekódovaný do bajtového pole
AcquireDecodedImageStreamDekóduje obrazový XObject do sdíleného handle bitmapy s počítáním referencí
DecodeImageStreamDekóduje obrazový XObject do bitmapy vlastněné volajícím
BeginProgressiveImageDecodeSpustí zrušitelný progresivní dekodér pro velký obrazový stream
DecodeImageRegionDekóduje podregion obrázku v požadované velikosti v pixelech
AcquireDecodedImageRegionRegionální varianta vracející sdílený handle bitmapy s počítáním referencí
DecodeInlineImageDekóduje inline obrázek ze surových bajtů ID..EI a normalizované sady klíčů BI, čímž obchází cache čísel objektů; nil hook znamená, že inline obrázky se nevykreslují
DecodeColorKeyMaskPřevede color-key pole /Mask XObjectu obrazu na bílo-černou měkkou masku velikosti obrazu; nil, když obraz nemá použitelnou color-key masku, a nil hook takové obrazy kreslí bez maskování
ResolveFontDictNajde slovník fontu podle klíče prostředku a sleduje nepřímé reference na úrovních /Resources a /Font; nil, když chybí
EvalOCVisibilityVyhodnotí objekt vlastnosti /OC proti stavům vrstev dokumentu; nil hook nebo výsledek True znamená, že obsah se kreslí
CancellationTokenCancellation token kontrolovaný během dlouhých dekódovacích operací
ColourIntentIntent nakládání s barvami aplikovaný na vykreslený grafický stav
FallbackPolicyVolí, jestli se nepodporované vlastnosti ignorují, hlásí, nebo berou jako přísná selhání
FallbackDiagnosticLimitStropuje počet diagnostických zpráv sbíraných během fallbacku
OverprintPreviewZapíná simulaci náhledu overprintu
ProofICCProfileBajty ICC profilu použité pro proofingovou stranu barevné pipeline
OutputICCProfileBajty ICC profilu popisující výstupní zařízení
BlackPointCompensationZapíná black point compensation v ICC transformaci
SeparationPlateNázev separační barvy k izolaci; prázdný znamená normální vykreslování

Poznámky k použití

Související API