function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;
InsertFormObjectFromXObject es la segunda mitad de la API de reutilización de XObject de formulario de v1.25.0. Toma un manejador TPdfXObject (construido por CreateXObjectFromPage) e inserta UN FPDF_PAGEOBJECT que referencia ese XObject en la página ACTUAL de ESTE documento. Cada llamada inserta un nuevo objeto de página, de modo que el mismo XObject se puede estampar varias veces en varias páginas del destino — cada estampa comparte la caché de contenido de página subyacente, lo que mantiene el tamaño del archivo bajo incluso cuando la marca de agua / plantilla está ocupada
El manejador FPDF_PAGEOBJECT devuelto permite al llamador invocar FPDFPageObj_SetMatrix o los ayudantes TPdfMatrix para posicionar / escalar / rotar la estampa en cualquier lugar de la página. Sin una transformación explícita, la página insertada se sitúa en la esquina inferior izquierda a escala 1:1, lo que casi nunca es lo que se quiere; establezca siempre una matriz antes de llamar a UpdatePage
Devuelve nil en caso de fallo (XObject nulo, este TPdf no Active, sin página actual). Tras la inserción, el objeto de página es propiedad de la página, no del XObject — liberar el XObject no invalida el objeto de página insertado
PageNumber de ESTE TPdf. Establezca PageNumber primero, y luego llame a InsertFormObjectFromXObjectUpdatePage después de posicionar la estampa para que PDFium vuelva a renderizar el flujo de contenido de la página
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;