function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;
InsertFormObjectFromXObject is de tweede helft van de Form
XObject-hergebruik-API uit v1.25.0. De functie neemt een TPdfXObject-handle
(gebouwd door CreateXObjectFromPage) en voegt precies één FPDF_PAGEOBJECT
die naar dat XObject verwijst in op de HUIDIGE pagina van DIT document. Elke
aanroep voegt een nieuw paginaobject in, dus hetzelfde XObject kan meerdere
keren gestempeld worden op meerdere pagina's van het doel —
elke stempel deelt de onderliggende page-contentcache, wat de
bestandsgrootte laag houdt zelfs bij een drukke watermark / template
Met de teruggegeven FPDF_PAGEOBJECT-handle kan de aanroeper
FPDFPageObj_SetMatrix of de
TPdfMatrix-helpers gebruiken om de
stempel te positioneren / schalen / roteren op elke plek op de pagina. Zonder expliciete transformatie
staat de ingevoegde pagina linksonder op schaal 1:1, wat
bijna nooit is wat u wilt; zet altijd eerst een matrix voordat u
UpdatePage aanroept
Geeft nil terug bij mislukking (XObject is nil, deze TPdf
niet Active, geen huidige pagina). Na het invoegen is het paginaobject
eigendom van de pagina, niet van het XObject — het vrijgeven van het XObject
maakt het ingevoegde paginaobject niet ongeldig
PageNumber van DIT TPdf. Stel eerst PageNumber in en roep daarna InsertFormObjectFromXObject aanUpdatePage aan na het positioneren van de stempel zodat PDFium de page content stream opnieuw rendert
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;