PDFium Delphi Component Docs

InsertFormObjectFromXObject 메서드

컴포넌트: TPdf  ·  유닛: PDFium
TPdfXObject로 감싼 page의 복사본 하나를 이 document의 current page에 삽입하고, caller가 position / scale / rotate할 수 있도록 FPDF_PAGEOBJECT를 반환합니다

Syntax

function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;

Description

InsertFormObjectFromXObject는 v1.25.0 Form XObject 재사용 API의 후반부입니다. TPdfXObject 핸들(CreateXObjectFromPage로 만든 것)을 받아 그 XObject를 참조하는 FPDF_PAGEOBJECT 하나를 이 문서의 현재 페이지에 삽입합니다. 호출할 때마다 새 페이지 객체가 삽입되므로 같은 XObject를 대상 문서의 여러 페이지에 여러 번 스탬프할 수 있습니다 — 모든 스탬프가 기반 페이지 콘텐츠 캐시를 공유하므로 워터마크 / 템플릿이 복잡해도 파일 크기가 작게 유지됩니다

반환된 FPDF_PAGEOBJECT 핸들로 호출자는 FPDFPageObj_SetMatrix나 TPdfMatrix 헬퍼를 써서 스탬프를 페이지 어디든 배치 / 스케일 / 회전할 수 있습니다. 명시적 변환을 주지 않으면 삽입된 페이지는 왼쪽 아래 모서리에 1:1 크기로 놓이는데 원하는 모양은 거의 아닐 것입니다. UpdatePage를 호출하기 전에 반드시 매트릭스를 설정하세요

실패하면(XObject가 nil, 이 TPdf가 Active 아님, 현재 페이지 없음) nil을 반환합니다. 삽입 후 페이지 객체의 소유자는 페이지이지 XObject가 아닙니다 — XObject를 해제해도 삽입된 페이지 객체는 무효화되지 않습니다

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