function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;
InsertFormObjectFromXObject, v1.25.0 Form XObject yeniden kullanım API'sinin ikinci yarısıdır. CreateXObjectFromPage tarafından oluşturulan bir TPdfXObject handle'ı alır ve o XObject'e başvuran TEK bir FPDF_PAGEOBJECT'i THIS document's CURRENT page içine ekler. Her çağrı yeni bir page object ekler; böylece aynı XObject destination'ın birden çok sayfasında birden çok kez damgalanabilir — her damga alttaki page-content cache'i paylaşır, bu da watermark / template yoğun olsa bile dosya boyutunu düşük tutar
Döndürülen FPDF_PAGEOBJECT handle'ı, çağıranın damgayı sayfanın herhangi bir yerine yerleştirmek / ölçeklemek / döndürmek için FPDFPageObj_SetMatrix ya da TPdfMatrix yardımcılarını çağırmasına izin verir. Açık bir transform olmadan eklenen sayfa alt sol köşede 1:1 ölçeğinde durur; bu neredeyse hiçbir zaman istediğiniz şey değildir, bu yüzden UpdatePage çağırmadan önce her zaman bir matrix ayarlayın
nil başarısızlıkta döner (XObject nil, bu TPdf Active değil, current page yok). Eklemeden sonra page object'e sayfa sahip olur, XObject değil — XObject'i serbest bırakmak eklenen page object'i geçersiz kılmaz
PageNumber değeriyle belirlenir. Önce PageNumber ayarlayın, sonra InsertFormObjectFromXObject çağırınUpdatePage çağırın ki PDFium sayfa content stream'ini yeniden render etsin
uses FPdfMatrix;
var
PageObj: FPDF_PAGEOBJECT;
M: TPdfMatrix;
begin
Pdf1.PageNumber := 3;
PageObj := Pdf1.InsertFormObjectFromXObject(XObj);
if PageObj <> nil then
begin
M := TPdfMatrix.Create;
try
M.Translate(100, 200);
M.Scale(0.5, 0.5);
M.Rotate(15);
FPDFPageObj_SetMatrix(PageObj, M.AsMatrix);
finally
M.Free;
end;
Pdf1.UpdatePage;
end;
end;