PDFium Delphi Component Docs

InsertFormObjectFromXObject Método

Componente: TPdf  ·  Unidade: PDFium
Insere UMA cópia da página encapsulada por um TPdfXObject na página atual deste documento, retornando FPDF_PAGEOBJECT para que o chamador possa posicioná-la, redimensioná-la ou girá-la

Syntax

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Description

InsertFormObjectFromXObject é a segunda metade da API de reutilização de Form XObject da v1.25.0. Ele recebe um handle TPdfXObject (construído por CreateXObjectFromPage) e insere UM FPDF_PAGEOBJECT que referencia esse XObject na página ATUAL deste documento. Cada chamada insere um novo objeto de página, de modo que o mesmo XObject pode ser carimbado várias vezes em várias páginas do destino — cada carimbo compartilha o cache de conteúdo de página subjacente, o que mantém o tamanho do arquivo baixo mesmo quando a marca d'água / o template é complexo.

O handle FPDF_PAGEOBJECT retornado permite ao chamador chamar FPDFPageObj_SetMatrix ou os auxiliares de TPdfMatrix para posicionar / escalar / girar o carimbo em qualquer lugar da página. Sem uma transformação explícita, a página inserida fica no canto inferior esquerdo em escala 1:1, o que quase nunca é o desejado; sempre defina uma matriz antes de chamar UpdatePage.

Retorna nil em caso de falha (XObject é nil, este TPdf não está Active, não há página atual). Após a inserção, o objeto de página é de propriedade da página, não do XObject — liberar o XObject não invalida o objeto de página inserido.

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