PDFium Component Docs

InsertFormObjectFromXObject Methode

Component: TPdf  ·  Unit: PDFium
Voegt ÉÉN kopie van de pagina die door een TPdfXObject is verpakt in op de huidige pagina van dit document en geeft de FPDF_PAGEOBJECT terug zodat de caller deze kan positioneren / schalen / roteren

Syntax

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Description

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

Remarks

Example

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;

See Also

CreateXObjectFromPage, UpdatePage, PageNumber