PDFium Delphi Component Docs

InsertFormObjectFromXObject-metod

Component: TPdf  ·  Unit: PDFium
Infogar EN kopia av sidan som kapslas in av en TPdfXObject i det här dokumentets aktuella sida och returnerar FPDF_PAGEOBJECT så att anroparen kan positionera / skala / rotera den

Syntax

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Description

InsertFormObjectFromXObject är den andra halvan av Form- XObject-återanvändnings-API:et från v1.25.0. Den tar ett TPdfXObject-handtag (byggt av CreateXObjectFromPage) och infogar EN FPDF_PAGEOBJECT som refererar till det XObject:et i DETTA dokuments AKTUELLA sida. Varje anrop infogar ett nytt sidobjekt, så samma XObject kan stämplas flera gånger över flera sidor i målet — varje stämpel delar den underliggande sidinnehållscachen, vilket håller nere filstorleken även när vattenstämpeln / mallen är detaljrik

Det returnerade FPDF_PAGEOBJECT-handtaget låter anroparen anropa FPDFPageObj_SetMatrix eller hjälpmedlen TPdfMatrix för att positionera / skala / rotera stämpeln var som helst på sidan. Utan en explicit transform placeras den infogade sidan i nedre vänstra hörnet i skala 1:1, vilket nästan aldrig är vad man vill; sätt alltid en matris innan UpdatePage anropas

Returnerar nil vid misslyckande (XObject är nil, denna TPdf är inte Active, ingen aktuell sida). Efter infogningen ägs sidobjektet av sidan, inte av XObject:et — att frigöra XObject:et ogiltigförklarar inte det infogade sidobjektet

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