THPDFRenderDocAccess Record

Mengikat renderer ke layanan dokumen untuk me-resolve referensi, membaca stream, men-decode gambar, menemukan font, dan mengevaluasi visibilitas layer

Deklarasi

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

Kolom

FieldTujuan
ContextPointer context yang diberikan pemanggil, diteruskan sebagai argumen pertama setiap callback; dokumen mengikat dirinya di sini
SharedCacheCache renderer yang bisa dibagi beberapa halaman ketika ShareRenderCaches aktif
ShareRenderCachesTrue ketika dokumen mengizinkan renderer konkuren berbagi decode cache
ResolveObjectResolver indirect-reference generik untuk tipe objek apa pun; ditambahkan karena resolver bertipe mengembalikan nil untuk tipe yang tidak cocok
ResolveDictionaryMe-resolve indirect reference ke dictionary object, nil untuk tipe lain
ResolveStreamMe-resolve indirect reference ke stream object
ReadDecodedStreamBytesMembaca stream yang sepenuhnya ter-decode ke array byte
AcquireDecodedImageStreamMen-decode image XObject menjadi handle bitmap bersama yang reference-counted
DecodeImageStreamMen-decode image XObject menjadi bitmap milik pemanggil
BeginProgressiveImageDecodeMemulai decoder progresif yang dapat dibatalkan untuk stream gambar besar
DecodeImageRegionMen-decode sub-region gambar pada ukuran piksel yang diminta
AcquireDecodedImageRegionVarian region yang mengembalikan handle bitmap bersama yang reference-counted
DecodeInlineImageMen-decode inline image dari byte mentah ID..EI dan set key BI ternormalisasi, mem-bypass cache ber-key object-number; hook nil berarti inline image tidak dirender
DecodeColorKeyMaskMengubah array /Mask color-key dari sebuah image XObject menjadi soft mask hitam-putih seukuran gambar; nil ketika gambar tidak punya color-key mask yang bisa dipakai, dan hook nil menggambar gambar semacam itu tanpa mask
ResolveFontDictMencari font dictionary berdasarkan resource key, mengikuti indirect reference di level /Resources dan /Font; nil ketika tidak ada
EvalOCVisibilityMengevaluasi objek properti /OC terhadap state layer dokumen; hook nil atau hasil True berarti konten digambar
CancellationTokenCancellation token yang diperiksa selama operasi decode yang panjang
ColourIntentIntent penanganan warna yang diterapkan pada graphics state hasil render
FallbackPolicyMemilih apakah fitur yang tidak didukung diabaikan, dilaporkan, atau diperlakukan sebagai kegagalan ketat
FallbackDiagnosticLimitMembatasi jumlah pesan diagnostik yang dikumpulkan saat fallback
OverprintPreviewMengaktifkan simulasi overprint preview
ProofICCProfileByte ICC profile yang dipakai untuk sisi proofing dari pipeline warna
OutputICCProfileByte ICC profile yang menjelaskan perangkat output
BlackPointCompensationMengaktifkan black point compensation dalam transform ICC
SeparationPlateNama separation plate yang diisolasi; kosong berarti render normal

Catatan penggunaan

API terkait