procedure TransformPageObjectClipPath(Index: Integer; const Matrix: FS_MATRIX);
| Index | Integer. Nullbasierter Index des Seitenobjekts im Bereich 0 .. ObjectCount - 1 |
| Matrix | FS_MATRIX. Affine Transformation (a, b, c, d, e, f), die an die vorhandene Clip-Pfad-Geometrie angehängt wird |
Während TransformPageObject ein Objekt verschiebt, skaliert oder dreht, transformiert dieser Aufruf nur den Clip-Pfad des Objekts über den nativen Einstiegspunkt FPDFPageObj_TransformClipPath: das Objekt behält seine eigene Matrix, während die Region, auf die es zugeschnitten ist, neu geformt wird. Verwenden Sie es, um ein Beschneidungsfenster nach dem Vergrößern eines Objekts zu erweitern oder einen Clip neu zu positionieren, der nicht mehr zu seinem Inhalt passt
Die Matrix wird mit der aktuellen Clip-Pfad-Geometrie verkettet statt sie zu ersetzen, sodass sich wiederholte Aufrufe akkumulieren. Prüfen Sie den aktuellen Clip zuerst mit PageObjectClipPath
Der Textseiten-Cache wird vor der Änderung entladen und die Seite danach neu erzeugt (UpdatePage), sodass abhängige Lookups die neue Geometrie übernehmen. Der Aufruf setzt voraus, dass die aktuelle Seite aktiv ist, und löst einen EPdfError (Page object clip path transforms are not available) aus, wenn der geladene PDFium-Build den nativen Einstiegspunkt nicht exportiert
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;