procedure TransformPageObjectClipPath(Index: Integer; const Matrix: FS_MATRIX);
| Index | Integer。ページオブジェクトの 0 起点のインデックスで、0 .. ObjectCount - 1 の範囲で指定します |
| Matrix | FS_MATRIX。既存のクリップパスジオメトリに連結されるアフィン変換 (a, b, c, d, e, f) です |
TransformPageObject がオブジェクトを移動、拡大縮小、回転するのに対し、この呼び出しはネイティブエントリポイント FPDFPageObj_TransformClipPath を通じてオブジェクトのクリップパスだけを変換します。オブジェクト自身の行列はそのまま維持され、クリップされる領域のみが形を変えます。オブジェクトを大きくした後にクリッピングウィンドウを広げたり、コンテンツと合わなくなったクリップを移動したりするために使えます
行列は現在のクリップパスジオメトリを置き換えるのではなく連結するため、繰り返し呼び出すと累積します。現在のクリップは事前に PageObjectClipPath で確認できます
変更の前にテキストページのキャッシュが解放され、変更の後にページが再生成される (UpdatePage) ため、依存する検索は新しいジオメトリを取得します。この呼び出しは現在のページがアクティブであることを必要とし、読み込まれた PDFium ビルドがネイティブエントリポイントをエクスポートしていない場合には EPdfError (Page object clip path transforms are not available) が発生します
var
M: FS_MATRIX;
begin
// widen the clip region of object 4 to twice its size, same origin
FillChar(M, SizeOf(M), 0);
M.a := 2;
M.d := 2;
Pdf1.TransformPageObjectClipPath(4, M);
end;