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
| Field | Tujuan |
|---|---|
Context | Pointer context yang diberikan pemanggil, diteruskan sebagai argumen pertama setiap callback; dokumen mengikat dirinya di sini |
SharedCache | Cache renderer yang bisa dibagi beberapa halaman ketika ShareRenderCaches aktif |
ShareRenderCaches | True ketika dokumen mengizinkan renderer konkuren berbagi decode cache |
ResolveObject | Resolver indirect-reference generik untuk tipe objek apa pun; ditambahkan karena resolver bertipe mengembalikan nil untuk tipe yang tidak cocok |
ResolveDictionary | Me-resolve indirect reference ke dictionary object, nil untuk tipe lain |
ResolveStream | Me-resolve indirect reference ke stream object |
ReadDecodedStreamBytes | Membaca stream yang sepenuhnya ter-decode ke array byte |
AcquireDecodedImageStream | Men-decode image XObject menjadi handle bitmap bersama yang reference-counted |
DecodeImageStream | Men-decode image XObject menjadi bitmap milik pemanggil |
BeginProgressiveImageDecode | Memulai decoder progresif yang dapat dibatalkan untuk stream gambar besar |
DecodeImageRegion | Men-decode sub-region gambar pada ukuran piksel yang diminta |
AcquireDecodedImageRegion | Varian region yang mengembalikan handle bitmap bersama yang reference-counted |
DecodeInlineImage | Men-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 |
DecodeColorKeyMask | Mengubah 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 |
ResolveFontDict | Mencari font dictionary berdasarkan resource key, mengikuti indirect reference di level /Resources dan /Font; nil ketika tidak ada |
EvalOCVisibility | Mengevaluasi objek properti /OC terhadap state layer dokumen; hook nil atau hasil True berarti konten digambar |
CancellationToken | Cancellation token yang diperiksa selama operasi decode yang panjang |
ColourIntent | Intent penanganan warna yang diterapkan pada graphics state hasil render |
FallbackPolicy | Memilih apakah fitur yang tidak didukung diabaikan, dilaporkan, atau diperlakukan sebagai kegagalan ketat |
FallbackDiagnosticLimit | Membatasi jumlah pesan diagnostik yang dikumpulkan saat fallback |
OverprintPreview | Mengaktifkan simulasi overprint preview |
ProofICCProfile | Byte ICC profile yang dipakai untuk sisi proofing dari pipeline warna |
OutputICCProfile | Byte ICC profile yang menjelaskan perangkat output |
BlackPointCompensation | Mengaktifkan black point compensation dalam transform ICC |
SeparationPlate | Nama separation plate yang diisolasi; kosong berarti render normal |
Catatan penggunaan
- THotPDF mengikat setiap hook melalui helper internal
MakeRenderDocAccess-nya, sehingga aplikasi menerima record siap pakai alih-alih mengisinya sendiri - Render backend kustom membaca hook-hook ini dari
THPDFPageRenderBackendRequestalih-alih menyentuh dokumen secara langsung - Biarkan
DecodeInlineImageatauEvalOCVisibilitynil untuk kembali ke perilaku legacy: melewatkan inline image dan menggambar semua optional content