THPDFRenderDocAccess Record

Bindet den Renderer an Dokumentdienste zum Auflösen von Referenzen, Lesen von Strömen, Dekodieren von Bildern, Auffinden von Schriften und Auswerten der Layer-Sichtbarkeit

Deklaration

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

Felder

FeldZweck
ContextVom Aufrufer gelieferter Kontextzeiger, der als erstes Argument jedes Callbacks übergeben wird; das Dokument bindet sich hier selbst
SharedCacheRenderer-Cache, den sich mehrere Seiten teilen können, wenn ShareRenderCaches aktiviert ist
ShareRenderCachesTrue, wenn das Dokument nebenläufigen Renderern erlaubt, Dekodier-Caches zu teilen
ResolveObjectGenerischer Auflöser für indirekte Referenzen beliebigen Objekttyps; ergänzt, weil die typisierten Auflöser für nicht passende Typen nil zurückgeben
ResolveDictionaryLöst eine indirekte Referenz auf ein Dictionary-Objekt auf, nil für andere Typen
ResolveStreamLöst eine indirekte Referenz auf ein Stream-Objekt auf
ReadDecodedStreamBytesLiest einen Strom vollständig dekodiert in ein Byte-Array
AcquireDecodedImageStreamDekodiert ein Bild-XObject in ein gemeinsames, referenzgezähltes Bitmap-Handle
DecodeImageStreamDekodiert ein Bild-XObject in eine dem Aufrufer gehörende Bitmap
BeginProgressiveImageDecodeStartet einen abbrechbaren progressiven Dekoder für einen großen Bildstrom
DecodeImageRegionDekodiert eine Teilregion eines Bilds in einer angeforderten Pixelgröße
AcquireDecodedImageRegionRegionsvariante, die ein gemeinsames, referenzgezähltes Bitmap-Handle zurückgibt
DecodeInlineImageDekodiert ein Inline-Bild aus rohen ID..EI-Bytes und dem normalisierten BI-Schlüsselsatz, unter Umgehung des Objektnummer-Caches; nil-Hook bedeutet, Inline-Bilder werden nicht gerendert
DecodeColorKeyMaskMacht das Color-key-/Mask-Array eines Bild-XObjects zu einer schwarz-weißen Soft-Mask in der Größe des Bilds; nil, wenn das Bild keine brauchbare Color-Key-Maske hat, und ein nil-Hook zeichnet solche Bilder unmaskiert
ResolveFontDictSchlägt ein Font-Dictionary über einen Ressourcenschlüssel nach und folgt dabei indirekten Referenzen auf /Resources- und /Font-Ebene; nil, wenn nicht vorhanden
EvalOCVisibilityWertet ein /OC-Eigenschaftsobjekt gegen die Layer-Zustände des Dokuments aus; nil-Hook oder Ergebnis True bedeutet, der Inhalt wird gezeichnet
CancellationTokenCancellation-Token, das bei langen Dekodieroperationen geprüft wird
ColourIntentFarblicher Behandlungs-Intent, der auf den gerenderten Grafikzustand angewandt wird
FallbackPolicyWählt, ob nicht unterstützte Features ignoriert, gemeldet oder als strenge Fehler behandelt werden
FallbackDiagnosticLimitBegrenzt die Anzahl der beim Zurückfallen gesammelten Diagnosemeldungen
OverprintPreviewAktiviert die Overprint-Preview-Simulation
ProofICCProfileICC-Profil-Bytes für die Proofing-Seite der Farb-Pipeline
OutputICCProfileICC-Profil-Bytes, die das Ausgabegerät beschreiben
BlackPointCompensationAktiviert die Black-Point-Kompensation in der ICC-Transformation
SeparationPlateName der zu isolierenden Separationsplatte; leer rendert normal

Verwendungshinweise

Verwandte APIs