PDFium Delphi Component Docs

StampPagesFromPdf metod

Component: TPdf  ·  Unit: PDFium
Stämplar en sida från en annan TPdf som ett positionerat, skalat och valfritt roterat Form XObject-överlägg eller -underlägg på en eller flera målsidor

Syntax

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

Description

StampPagesFromPdf är den övergripande komponeraren för överlägg, underlägg och vattenstämplar. Den tillverkar ett Form XObject från en källsida via FPDF_NewXObjectFromPage och placerar därefter en positionerad, skalad och valfritt roterad kopia av det XObjectet på varje begärd målsida. Placering, skalning, rotation, blandningsläge och z-ordning styrs via posten TPdfOverlayOptions (Placement, X, Y, Scale, Rotation, Margin, UseCropBox, ZUnderlay och BlendMode); ut-parametern TPdfOverlayReport registrerar StampedPageCount, FailedPageCount, SkippedPageCount, SourcePageWidth, SourcePageHeight, Succeeded och ErrorMessage

Internt kombinerar varje stämpel FPDF_NewFormObjectFromXObject, FPDFPageObj_SetMatrix, FPDFPageObj_SetBlendMode och antingen FPDFPage_InsertObject (överlägg) eller FPDFPage_InsertObjectAtIndex med stackindex 0 (underlägg). Placeringsmatrisen byggs från PageWidth/PageHeight plus alternativfälten, så alla ankare, marginaler, skalningar och rotationer mappas till en enda transformering som PDFium applicerar på det infogade formobjektet

Källa och mål måste båda vara Active. Källan kan vara en separat TPdf-instans eller till och med detta dokument (self-stamp): anroparens aktuella PageNumber på båda dokumenten sparas och återställs runt anropet

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