PDFium Delphi Component Docs

ObjectHandle プロパティ

コンポーネント: TPdf  ·  ユニット: PDFium
指定した page object に対する生の PDFium FPDF_PAGEOBJECT pointer で、native PDFium C API を直接呼ぶ用途です

Syntax

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

Description

現在ページの Index 位置にある page object を PDFium が識別するのに使う、不透明な FPDF_PAGEOBJECT ポインタを返します。ObjectBounds、ObjectType などのインデックス付きオブジェクトプロパティが内部的に解決するのと同じハンドルがここに公開されるため、上級者はコンポーネントがまだラップしていない FPDFPageObj_*、FPDFPath_*、FPDFText_*、FPDFImageObj_* 関数を呼び出せます

ハンドルの所有者は現在のページで、ページがロードされている間だけ有効です。ReloadPage の呼び出し、PageNumber の切り替え、RemoveObject によるオブジェクトの削除、Active への False 代入は、以前キャッシュしたすべての ObjectHandle を無効化します。ページにアタッチ済みのハンドルに FPDFPageObj_Destroy を呼ばないでください。二重解放で PDFium がクラッシュします

指している先がどの種類のオブジェクトかで分岐するには、先に ObjectType を使い、そのあとでキャストして適切な PDFium ヘルパー群を呼びます。ポインタは同一ページセッション内での呼び出し間で同一性比較もできるので、編集操作とその結果オブジェクトを突き合わせるときに役立ちます

Parameters

Index0 基準の page-object インデックス。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