PDFium Delphi Component Docs

метод InsertFormObjectFromXObject

Компонент: TPdf  ·  Модул: PDFium
Вмъква ЕДНО копие на страницата, обвита в TPdfXObject, в текущата страница на този документ и връща FPDF_PAGEOBJECT, така че извикващият да я позиционира / мащабира / завърти

Синтаксис

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Описание

InsertFormObjectFromXObject е втората половина на API за преизползване на Form XObject от v1.25.0. Той приема манипулатор TPdfXObject (изграден от CreateXObjectFromPage) и вмъква ЕДИН FPDF_PAGEOBJECT, който реферира този XObject, в ТЕКУЩАТА страница на ТОЗИ документ. Всяко извикване вмъква нов page обект, така че същият XObject може да бъде щампован многократно върху множество страници на целевия документ — всяка щампа споделя основния кеш на съдържанието на страницата, което държи размера на файла малък, дори когато водният знак / шаблонът е натоварен

Върнатият манипулатор FPDF_PAGEOBJECT позволява на извикващия да извика FPDFPageObj_SetMatrix или помощните средства на TPdfMatrix, за да позиционира / мащабира / завърти щампата навсякъде по страницата. Без изрична трансформация вмъкнатата страница седи в долния ляв ъгъл в мащаб 1:1, което почти никога не е желаното; винаги задавайте матрица, преди да извикате UpdatePage

Връща nil при неуспех (XObject е nil, този TPdf не е Active, няма текуща страница). След вмъкването page обектът е в собственост на страницата, а не на XObject — освобождаването на XObject не обезсмисля вмъкнатия page обект

Забележки

Пример

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;

Виж също

CreateXObjectFromPage, UpdatePage, PageNumber