THPDFRenderDocAccess Record

renderer를 문서 서비스에 묶습니다. 참조 해석, 스트림 읽기, 이미지 디코딩, 폰트 찾기, 레이어 가시성 평가가 여기에 속합니다

선언

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;

유닛

HPDFPageRenderer

필드

필드목적
Context호출자가 공급하는 context 포인터. 모든 콜백의 첫 인자로 넘어가며 문서가 자기 자신을 여기 묶습니다
SharedCacheShareRenderCaches가 켜져 있을 때 여러 페이지가 공유할 수 있는 renderer 캐시
ShareRenderCaches문서가 동시 renderer끼리 decode 캐시를 공유하게 허용하면 True
ResolveObject어떤 객체 타입이든 다루는 범용 간접 참조 resolver. 타입별 resolver는 맞지 않는 타입에 nil을 반환해서 추가됐습니다
ResolveDictionary간접 참조를 dictionary 객체로 해석합니다. 다른 타입은 nil
ResolveStream간접 참조를 stream 객체로 해석합니다
ReadDecodedStreamBytes스트림을 완전히 디코딩해 byte 배열로 읽습니다
AcquireDecodedImageStreamimage XObject를 공유 reference-counted bitmap 핸들로 디코딩합니다
DecodeImageStreamimage XObject를 호출자 소유 비트맵으로 디코딩합니다
BeginProgressiveImageDecode큰 이미지 스트림용 취소 가능 progressive 디코더를 시작합니다
DecodeImageRegion이미지의 하위 영역을 요청한 픽셀 크기로 디코딩합니다
AcquireDecodedImageRegion공유 reference-counted bitmap 핸들을 반환하는 region 변형
DecodeInlineImageraw ID..EI 바이트와 정규화된 BI 키 집합으로 inline image를 디코딩하며 객체 번호 캐시는 우회합니다. nil hook이면 inline image를 그리지 않습니다
DecodeColorKeyMaskimage XObject의 컬러 키 /Mask 배열을 이미지 크기의 흑백 soft mask로 바꿉니다. 이미지에 쓸 만한 컬러 키 마스크가 없으면 nil이며, nil hook은 이런 이미지를 마스크 없이 그립니다
ResolveFontDict리소스 키로 폰트 사전을 찾습니다. /Resources와 /Font 수준의 간접 참조를 따라가며, 없으면 nil
EvalOCVisibility/OC property 객체를 문서 레이어 상태 기준으로 평가합니다. nil hook이거나 True이면 콘텐츠를 그립니다
CancellationToken긴 decode 작업 중 확인하는 cancellation token
ColourIntent렌더링된 graphics state에 적용되는 색 처리 intent
FallbackPolicy지원하지 않는 기능을 무시할지, 보고할지, 엄격한 실패로 다룰지 선택
FallbackDiagnosticLimit폴백하는 동안 모으는 diagnostic 메시지 수를 제한합니다
OverprintPreviewoverprint preview 시뮬레이션을 켭니다
ProofICCProfile색 파이프라인의 proofing 쪽에 쓰는 ICC profile 바이트
OutputICCProfile출력 디바이스를 기술하는 ICC profile 바이트
BlackPointCompensationICC 변환에서 black point compensation을 켭니다
SeparationPlate분리할 separation plate 이름. 비어 있으면 평범하게 렌더링합니다

사용 참고 사항

관련 API