FPDF_PAGEOBJECT pointer で、native PDFium C API を直接呼ぶ用途ですproperty ObjectHandle[Index: Integer]: Pointer; // read only
現在ページの Index 位置にある page object を PDFium が識別するのに使う、不透明な FPDF_PAGEOBJECT ポインタを返します。ObjectBounds、ObjectType などのインデックス付きオブジェクトプロパティが内部的に解決するのと同じハンドルがここに公開されるため、上級者はコンポーネントがまだラップしていない FPDFPageObj_*、FPDFPath_*、FPDFText_*、FPDFImageObj_* 関数を呼び出せます
ハンドルの所有者は現在のページで、ページがロードされている間だけ有効です。ReloadPage の呼び出し、PageNumber の切り替え、RemoveObject によるオブジェクトの削除、Active への False 代入は、以前キャッシュしたすべての ObjectHandle を無効化します。ページにアタッチ済みのハンドルに FPDFPageObj_Destroy を呼ばないでください。二重解放で PDFium がクラッシュします
指している先がどの種類のオブジェクトかで分岐するには、先に ObjectType を使い、そのあとでキャストして適切な PDFium ヘルパー群を呼びます。ポインタは同一ページセッション内での呼び出し間で同一性比較もできるので、編集操作とその結果オブジェクトを突き合わせるときに役立ちます
| Index | 0 基準の page-object インデックス。0 ≤ Index < ObjectCount |
Pointer と宣言されています。ネイティブ呼び出しに渡す前に FPDF_PAGEOBJECT へキャストしてくださいnil を返します
// 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;