PDFium Component Docs

InsertFormObjectFromXObject Metoda

Component: TPdf  ·  Unit: PDFium
Wstawia JEDNĄ kopię strony opakowanej w TPdfXObject na bieżącą stronę tego dokumentu, zwracając FPDF_PAGEOBJECT, aby wywołujący mógł ją pozycjonować / skalować / obracać

Syntax

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Description

InsertFormObjectFromXObject to druga połowa API ponownego użycia Form XObject wprowadzonego w v1.25.0. Pobiera uchwyt TPdfXObject (zbudowany przez CreateXObjectFromPage) i wstawia JEDEN FPDF_PAGEOBJECT przywołujący ten XObject do BIEŻĄCEJ strony TEGO dokumentu. Każde wywołanie wstawia nowy obiekt strony, więc ten sam XObject można ostemplować wielokrotnie na wielu stronach celu — każde ostemplowanie współdzieli bazową pamięć podręczną treści strony, co utrzymuje niski rozmiar pliku nawet przy rozbudowanym znaku wodnym / szablonie

Zwrócony uchwyt FPDF_PAGEOBJECT pozwala wywołującemu użyć FPDFPageObj_SetMatrix lub pomocników TPdfMatrix, aby pozycjonować / skalować / obracać stempel w dowolnym miejscu strony. Bez jawnej transformacji wstawiona strona ląduje w lewym dolnym narożniku w skali 1:1, co prawie nigdy nie jest tym, czego chcesz; zawsze ustaw macierz przed wywołaniem UpdatePage

Zwraca nil przy niepowodzeniu (XObject ma wartość nil, ten TPdf nie jest Active, brak bieżącej strony). Po wstawieniu obiekt strony należy do strony, a nie do XObjectu — zwolnienie XObjectu nie unieważnia wstawionego obiektu strony

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