PDFium Delphi Component Docs

метод StampPagesFromPdf

Компонент: TPdf  ·  Модул: PDFium
Щампва страница от друг TPdf като позициониран, мащабиран и по желание ротариран Form XObject overlay или underlay върху една или повече целеви страници

Синтаксис

function StampPagesFromPdf(
  Source : TPdf;
  SourcePageIndex : Integer;
  const TargetPages : array of Integer;
  const Options : TPdfOverlayOptions;
  out Report : TPdfOverlayReport): Boolean;

Описание

StampPagesFromPdf е композаторът от високо ниво за overlay, underlay и водни знаци. Той създава Form XObject от изходна страница чрез FPDF_NewXObjectFromPage, след което поставя по едно позиционирано, мащабирано и по желание ротарирано копие на този XObject във всяка заявена целева страница. Позиционирането, мащабирането, ротацията, blend режимът и z-редът се управляват чрез записа TPdfOverlayOptions (Placement, X, Y, Scale, Rotation, Margin, UseCropBox, ZUnderlay и BlendMode); out параметърът TPdfOverlayReport записва StampedPageCount, FailedPageCount, SkippedPageCount, SourcePageWidth, SourcePageHeight, Succeeded и ErrorMessage

Вътрешно всяко щампане комбинира FPDF_NewFormObjectFromXObject, FPDFPageObj_SetMatrix, FPDFPageObj_SetBlendMode и или FPDFPage_InsertObject (overlay), или FPDFPage_InsertObjectAtIndex със stack index 0 (underlay). Матрицата за позициониране се изгражда от PageWidth/PageHeight плюс полетата с опции, така че всички котви, полета, мащабиране и ротация се свеждат до една трансформация, която PDFium прилага върху вмъкнатия form object

Източникът и целта трябва и двете да са Active. Източникът може да е отделна инстанция на TPdf или дори самият този документ (self-stamp): текущият PageNumber на извикващия и за двата документа се запазва и възстановява около извикването

Параметри

Забележки

Пример

var
  Watermark: TPdf;
  Options: TPdfOverlayOptions;
  Report: TPdfOverlayReport;
begin
  Watermark := TPdf.Create(nil);
  try
    Watermark.FileName := 'C:\Confidential.pdf';
    Watermark.Active := True;
    Options := TPdfOverlayOptions.Default;
    Options.Placement := opCenter;
    Options.Rotation := 45;
    Options.BlendMode := bmMultiply;
    Pdf1.StampPagesFromPdf(Watermark, 0, [], Options, Report);
  finally
    Watermark.Free;
  end;
end;

Виж също

CreateXObjectFromPage, InsertFormObjectFromXObject, TransformPageObject, ImportPagesByIndex