function InsertFormObjectFromXObject(XObject: TPdfXObject): FPDF_PAGEOBJECT;
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를 해제해도
삽입된 페이지 객체는 무효화되지 않습니다
PageNumber로 결정됩니다. PageNumber를 먼저 설정한 뒤 InsertFormObjectFromXObject를 호출하세요UpdatePage를 호출해 PDFium이 페이지 콘텐츠 스트림을 다시 그리게 하세요
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;