function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;
الدالة InsertFormObjectFromXObject هي النصف الثاني من واجهة إعادة استخدام
Form XObject في v1.25.0. فهي تأخذ مقبض TPdfXObject (المبني
بواسطة CreateXObjectFromPage) وتدرج FPDF_PAGEOBJECT
واحدًا يشير إلى ذلك XObject في الصفحة الحالية من هذا المستند. وكل
استدعاء يدرج كائن صفحة جديدًا، فيمكن ختم XObject نفسه
مرات عدة عبر صفحات متعددة من الهدف —
وكل ختم يشارك ذاكرة محتوى الصفحة الأساسية المؤقتة، وهو ما يبقي
حجم الملف منخفضًا حتى عندما تكون العلامة المائية / القالب مزدحمة.
يتيح مقبض FPDF_PAGEOBJECT المُعاد للمستدعي استدعاء FPDFPageObj_SetMatrix أو مساعدات TPdfMatrix لموضعة / قياس / تدوير الختم في أي مكان على الصفحة. دون تحويل صريح تقع الصفحة المدرجة عند ركن أسفل اليسار بمقياس 1:1، وهو تقريبًا ليس ما تريده أبدًا؛ عيِّن دائمًا مصفوفة قبل استدعاء UpdatePage.
يعيد nil عند الفشل (XObject هو nil، أو هذا TPdf غير نشط، أو لا توجد صفحة حالية). بعد الإدراج يملك كائن الصفحة الكائن، وليس XObject — وتحرير XObject لا يبطل كائن الصفحة المدرج.
PageNumber الخاصة بـ TPdf هذه. فاضبط PageNumber أولًا، ثم استدعِ InsertFormObjectFromXObject.UpdatePage بعد موضعة الختم بحيث يعيد PDFium تصيير تيار محتوى الصفحة.
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;