PDFium Delphi Component Docs

InsertFormObjectFromXObject Methode

Komponente: TPdf  ·  Unit: PDFium
Fügt EINE Kopie der von einem TPdfXObject verpackten Seite in die aktuelle Seite dieses Dokuments ein und gibt das FPDF_PAGEOBJECT zurück, damit der Aufrufer es positionieren / skalieren / drehen kann

Syntax

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Description

InsertFormObjectFromXObject ist die zweite Hälfte der Form- XObject-Wiederverwendungs-API aus v1.25.0. Sie nimmt ein TPdfXObject-Handle (gebaut von CreateXObjectFromPage) und fügt EIN FPDF_PAGEOBJECT, das dieses XObject referenziert, in die AKTUELLE Seite DIESES Dokuments ein. Jeder Aufruf fügt ein neues Seitenobjekt ein, dasselbe XObject lässt sich also mehrfach über mehrere Seiten des Ziels stempeln — jeder Stempel teilt sich den zugrunde liegenden Seiteninhalt-Cache, was die Dateigröße klein hält, selbst wenn Wasserzeichen / Template fleißig im Einsatz sind

Mit dem zurückgegebenen FPDF_PAGEOBJECT-Handle kann der Aufrufer FPDFPageObj_SetMatrix oder die TPdfMatrix-Helfer aufrufen, um den Stempel an beliebiger Stelle der Seite zu positionieren / skalieren / drehen. Ohne explizite Transformation liegt das eingefügte Objekt in der unteren linken Ecke bei 1:1-Skalierung, was fast nie gewollt ist; immer eine Matrix setzen, bevor UpdatePage aufgerufen wird

Liefert nil bei Fehlschlag (XObject ist nil, dieses TPdf nicht Active, keine aktuelle Seite). Nach dem Einfügen gehört das Seitenobjekt der Seite, nicht dem XObject — das Freigeben des XObjects macht das eingefügte Seitenobjekt nicht ungültig

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