Документация PDFiumPas

InsertFormObjectFromXObject Метод

Эта запись API сохраняет идентификаторы, сигнатуры, блоки кода и термины PDF в исходном виде.
Компонент: TPdf  ·  Модуль: PDFium
Вставляет ОДНУ копию страницы, упакованной в TPdfXObject, на текущую страницу этого документа, возвращая FPDF_PAGEOBJECT, чтобы вызывающий код мог позиционировать, масштабировать и поворачивать ее

Синтаксис

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Описание

InsertFormObjectFromXObject — это вторая половина API повторного использования Form XObject в v1.25.0. Он принимает дескриптор TPdfXObject (созданный через CreateXObjectFromPage) и вставляет ОДИН FPDF_PAGEOBJECT, который ссылается на этот XObject, на ТЕКУЩУЮ страницу ЭТОГО документа. Каждый вызов вставляет новый page object, поэтому один и тот же XObject можно ставить штампом несколько раз на нескольких страницах назначения — каждый штамп использует общий cache page content, что уменьшает размер файла даже когда watermark / template активно используется

Возвращаемый дескриптор FPDF_PAGEOBJECT позволяет вызвать FPDFPageObj_SetMatrix или helpers TPdfMatrix, чтобы позиционировать, масштабировать и поворачивать штамп в любом месте страницы. Без явного transform вставленная страница окажется в левом нижнем углу в масштабе 1:1, что почти никогда не нужно; всегда задавайте matrix перед вызовом UpdatePage

Возвращает nil при ошибке (XObject равен nil, этот TPdf не Active, нет текущей страницы). После вставки page object принадлежит странице, а не XObject — освобождение XObject не делает вставленный page object недействительным

Примечания

Пример

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