PDFium Delphi Component Docs

ObjectHandle 속성

컴포넌트: TPdf  ·  유닛: PDFium
지정한 page object에 대한 raw PDFium FPDF_PAGEOBJECT pointer입니다 native PDFium C API를 직접 호출할 때 사용합니다

Syntax

property ObjectHandle[Index: Integer]: Pointer; // read only

Description

PDFium가 현재 페이지의 Index 위치 페이지 객체를 식별하는 데 쓰는 불투명한 FPDF_PAGEOBJECT 포인터를 반환하며, ObjectBounds, ObjectType 등 다른 indexed 객체 프로퍼티가 내부적으로 해석하는 것과 같은 핸들이 여기에 노출되므로, 고급 호출자는 컴포넌트가 아직 감싸지 않은 FPDFPageObj_*, FPDFPath_*, FPDFText_*, FPDFImageObj_* 함수를 호출할 수 있습니다

핸들의 소유자는 현재 페이지이며 페이지가 로드되어 있는 동안에만 유효하고, ReloadPage 호출, PageNumber 전환, RemoveObject로 객체 제거, Active를 False로 설정은 이전에 캐시한 모든 ObjectHandle을 무효화합니다. 이미 페이지에 붙어 있는 핸들에 FPDFPageObj_Destroy를 호출하지 마세요 — 두 번 파괴하면 PDFium이 크래시합니다

가리키는 객체 종류로 분기할 때는 먼저 ObjectType을 쓰고, 그다음 캐스팅해서 알맞은 PDFium 헬퍼 계열을 호출하세요. 이 포인터는 한 페이지 세션 안의 호출들 사이에서 동일성 비교도 되므로, 편집 작업과 그 결과 객체를 연관 지을 때 유용합니다

Parameters

Index0 기반 페이지 객체 인덱스, 0 ≤ Index < ObjectCount

Remarks

Example

// Read the blend mode of the first object using the raw PDFium API.
uses PDFiumLib;
var Obj: FPDF_PAGEOBJECT;
var Blend: array[0..15] of AnsiChar;
begin
  Obj := Pdf1.ObjectHandle[0];
  if Assigned(Obj) then
    FPDFPageObj_GetBlendMode(Obj, @Blend[0], SizeOf(Blend));
  ShowMessage(string(Blend));
end;

See Also

ObjectCount, ObjectType, ObjectBounds, UpdatePage, RemoveObject