PDFium Delphi Component Docs

StampPagesFromPdf metóda

Component: TPdf  ·  Unit: PDFium
Vloží stranu z iného TPdf ako umiestnený, zmenený, voliteľne otočený prekryv alebo podklad vo forme Form XObject na jednu alebo viac cieľových strán

Syntax

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

Description

StampPagesFromPdf je kompozítor prekryvov, podkladov a vodoznakov vysokej úrovne. Vytvorí Form XObject zo zdrojovej strany cez FPDF_NewXObjectFromPage a potom vloží jednu umiestnenú, zmenenú, voliteľne otočenú kópiu tohto XObjectu do každej požadovanej cieľovej strany. Umiestnenie, zmena veľkosti, otočenie, režim prelínania a poradí v hĺbke sa riadia cez záznam TPdfOverlayOptions (Placement, X, Y, Scale, Rotation, Margin, UseCropBox, ZUnderlay a BlendMode); výstupný parameter TPdfOverlayReport zaznamenáva StampedPageCount, FailedPageCount, SkippedPageCount, SourcePageWidth, SourcePageHeight, Succeeded a ErrorMessage

Každá pečiatka interne kombinuje FPDF_NewFormObjectFromXObject, FPDFPageObj_SetMatrix, FPDFPageObj_SetBlendMode a buď FPDFPage_InsertObject (prekryv), alebo FPDFPage_InsertObjectAtIndex s indexom zásobníka 0 (podklad). Matica umiestnenia sa zostaví z PageWidth/PageHeight plus voličných polí, takže všetky ukotvenia, okraje, zmeny veľkosti a otočenia sa mapujú na jednu transformáciu, ktorú PDFium aplikuje na vložený form objekt

Zdroj aj cieľ musia byť obe Active. Zdrojom môže byť samostatná inštancia TPdf alebo dokonca tento dokument (samopečiatkovanie): aktuálne PageNumber volajúceho na oboch dokumentoch sa počas volania uloží a obnoví

Parameters

Remarks

Example

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;

See Also

CreateXObjectFromPage, InsertFormObjectFromXObject, TransformPageObject, ImportPagesByIndex