| ImageEn, unit iexPdfiumCore | 
 | 
 
TPdfObjectList.AddPath
 
Declaration
// Line overloads
function AddPath(X1, Y1, X2, Y2: Single; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject; overload;
function AddPath(X1, Y1, X2, Y2: Single; LineColor: TColor; LineWidth: Single = 1.0; LineOpacity: Single = 1.0; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject; overload;
// Curve overloads
function AddPath(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Single; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject;
function AddPath(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Single; LineWidth: Single = 1.0; LineOpacity: Single = 1.0; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject; overload;
// Path overloads
function AddPath(Pts: Array of TDPoint; PathClosed: Boolean; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject; overload;
function AddPath(Pts: Array of TDPoint; PathClosed: Boolean;
                 LineColor: TColor; LineWidth: Single = 1.0; LineOpacity: Single = 1.0; EndingCap: TIEPDFEndingCap = iepdfButtCaps;
                 Filled: boolean = false; FillColor: TColor = clBlack; FillOpacity: Single = 1.0; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject; overload;
// Shape overloads
function AddPath(X, Y, Width, Height: Integer; Shape: TIEShape; ClosePolyline: Boolean = True; MaintainAR: Boolean = False; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject; overload;
function AddPath(X, Y, Width, Height: Integer; Shape: TIEShape; ClosePolyline: Boolean;
                 LineColor: TColor; LineWidth: Single = 1.0; LineOpacity: Single = 1.0;
                 Filled: boolean = false; FillColor: TColor = clBlack; FillOpacity: Single = 1.0;
                 MaintainAR: Boolean = False; DoInsert: Boolean = False; InsertIndex: Integer = 0): TPdfObject; overload;
Description
Add a path object to the current page at the specified position (in terms of PDF points).
If DoInsert is enabled, the object will be inserted at the specified InsertIndex (i.e. its z-position is set, where 0 is the object closest to the page, and Count-1 is the front-most object).
Note: You must call 
ApplyChanges before saving to apply object changes to the document
PDF Page Points
Objects on a PDF page are specified in points that originate at the bottom-left, i.e. when X,Y = (0,0). The top-left of the page is specified by (
PageWidth, 
PageHeight).
To convert PDF points to screen values, use 
PageToScr.
Line Example
const
  Line_OffsetX = 120;
  Line_OffsetY = 90;
  Line_Color   = clNavy;
  Line_Width   = 3;
  Line_Opacity = 255;
var
  obj: TPdfObject;
begin
  obj := ImageEnView1.PdfViewer.Objects.AddPath( 100, 800, 100 + Line_OffsetX, 800 + Line_OffsetY );
  obj.StrokeColor := TColor2TRGBA( Line_Color, Line_Opacity );
  obj.PathStrokeWidth := Line_Width;
end;
Path Example
const
  Path_OffsetX1 = -60;
  Path_OffsetY1 = -60;
  Path_OffsetX2 = 120;
  Path_OffsetY2 = 0;
  Path_Color    = clPurple;
  Path_Width    = 3;
  Path_Opacity  = 255;
  Path_Closed   = True;
var
  obj: TPdfObject;
var
  pathPts: array of TDPoint;
begin
  SetLength( pathPts, 3 );
  pathPts[0] := DPoint( 100, 800);
  pathPts[1] := DPoint( 100 + Path_OffsetX1, 800 + Path_OffsetY1 );
  pathPts[2] := DPoint( 100 + Path_OffsetX1 + Path_OffsetX2, 800 + Path_OffsetY1 + Path_OffsetY2 );
  obj := ImageEnView1.PdfViewer.Objects.AddPath( pathPts, Path_Closed );
  obj.StrokeColor := TColor2TRGBA( Path_Color, Path_Opacity );
  obj.PathStrokeWidth := Path_Width;
  obj.FillColor := TColor2TRGBA( Path_Fill, Fill_Opacity );
  obj.PathFillMode := pfAlternate;
end;
Shape Example
const
  Shape_Shape     = iesStar5;
  Shape_Width     = 200;
  Shape_Height    = 200;
  Shape_LineColor = clYellow;
  Shape_LineWidth = 0;
  Shape_Opacity   = 255;
  Shape_Closed    = True;
  Shape_Fill      = clYellow;
  Fill_Opacity    = 255;
var
  obj: TPdfObject;
begin
  obj := ImageEnView1.PdfViewer.Objects.AddPath( Round( 100 ), Round( 800 ), Shape_Width, Shape_Height, Shape_Shape, Shape_Closed );
  obj.StrokeColor := TColor2TRGBA( Shape_LineColor, Shape_Opacity );
  obj.PathStrokeWidth := Shape_LineWidth;
  obj.FillColor := TColor2TRGBA( Shape_Fill, Fill_Opacity );
  obj.PathFillMode := pfAlternate;
end;
Curve Example
const
  Line_Pt1_X   = 120;
  Line_Pt1_Y   = 60;
  Line_Pt2_X   = 160;
  Line_Pt2_Y   = 60;
  Line_EndPt_X = 160;
  Line_EndPt_Y = 160;
  Line_Color   = clFuchsia;
  Line_Width   = 3;
  Line_Opacity = 255;
var
  obj: TPdfObject;
begin
  // Add a cubic Bezier curve to the given path, starting at the current point.
  //
  // x1     - Horz starting point
  // y1     - Vert starting point
  // x2     - the horizontal position of the first Bezier control point
  // y2     - the vertical position of the first Bezier control point
  // x3     - the horizontal position of the second Bezier control point
  // y3     - the vertical position of the second Bezier control point
  // x4     - the horizontal position of the ending point of the Bezier curve
  // y4     - the vertical position of the ending point of the Bezier curve
  obj := ImageEnView1.PdfViewer.Objects.AddPath( 100, 800,
                                                 100 + Line_Pt1_X, 800 + Line_Pt1_Y,
                                                 100 + Line_Pt2_X, 800 + Line_Pt2_Y,
                                                 100 + Line_EndPt_X, 800 + Line_EndPt_Y );
  obj.StrokeColor := TColor2TRGBA( Line_Color, Line_Opacity );
  obj.PathStrokeWidth := Line_Width;
end;
// Insert red line at index 0, i.e. close to the background (below all other objects)
ImageEnView1.PdfViewer.Objects.AddPath( 100, 100, 200, 200, clRed, 3.0, 1.0, True, 0 );