procedure TransformPageObjectClipPath(Index: Integer; const Matrix: FS_MATRIX);
| Index | Integer ลำดับแบบ zero-based ของ page object ในช่วง 0 .. ObjectCount - 1 |
| Matrix | FS_MATRIX transform แบบ affine (a, b, c, d, e, f) ที่ถูกคูณต่อเข้ากับเรขาคณิต clip path เดิม |
ขณะที่ TransformPageObject ย้าย ย่อขยาย หรือหมุน object คำสั่งนี้จะ transform เฉพาะ clip path ของ object ผ่าน entry point ระดับ native FPDFPageObj_TransformClipPath ตัว object ยังคงเมทริกซ์ของมันเอง แต่บริเวณที่ถูก clip อยู่ถูกปรับรูปใหม่ ใช้เมื่อต้องขยายหน้าต่าง clipping หลังขยาย object หรือจัดตำแหน่ง clip ใหม่เมื่อไม่ตรงกับเนื้อหาแล้ว
เมทริกซ์จะถูกคูณต่อเข้ากับเรขาคณิต clip path ปัจจุบัน ไม่ใช่แทนที่ การเรียกซ้ำจึงสะสมผล ควรตรวจ clip ปัจจุบันก่อนด้วย PageObjectClipPath
cache ข้อความของหน้าถูก unload ก่อนเปลี่ยนแปลง และหน้าถูก regenerate ใหม่หลังจากนั้น (UpdatePage) lookup ที่ขึ้นกับเรขาคณิตจึงเห็นค่าใหม่ คำสั่งนี้ต้องการให้หน้าปัจจุบัน active และจะ raise EPdfError (Page object clip path transforms are not available) เมื่อ build ของ PDFium ที่โหลดอยู่ไม่มี export ของ entry point ระดับ native
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;