# Path Class

> A path in a PDF file defines shapes.

- Product: Adobe PDF Library 21
- Language: .NET Framework
- Version: APDFL21.0.0PlusP1e
- HTML page: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path
- Version index: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/llms.txt

```csharp
class Path : Element
```

**Namespace:** `Datalogics::PDFL`

**Inherits from:** [`Element`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Element.md)

## Description

A path in a PDF file defines shapes.

Paths in PDF files are used to draw lines, define filled areas, and define boundaries for clipping graphics. A path is composed of straight and curved line segments.

**Referenced by:** [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md)

**Uses types:** [`Clip`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Clip.md), [`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md), [`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md), [`PathPaintOpFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PathPaintOpFlags.md), [`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md), [`Segment`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Segment.md)

## Constructors

### Path

```csharp
Datalogics.PDFL.Path.Path()
```

*constructor*

Create a path.

### Path

```csharp
Datalogics.PDFL.Path.Path(GraphicState graphicState)
```

*constructor*

**Parameters**

- `graphicState` ([`GraphicState`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/GraphicState.md)): the initial graphic state for the path

Create a path with a given graphic state.

## Properties

### BoundingBox

```csharp
Rect Datalogics.PDFL.Element.BoundingBox { get; }
```

The bounding box for this element.

The bounding box is a rectangle that is guaranteed to encompass the element, but it is not guaranteed to be the smallest box that could contain the element. For example, if the element is a Path that contains an arc, the bounding box encompasses the bezier control points, and not just the curve itself.

### Clip

```csharp
Clip Datalogics.PDFL.Element.Clip { get; set; }
```

Gets the current Clip for an Element.

### GraphicState

```csharp
GraphicState Datalogics.PDFL.Path.GraphicState { get; set; }
```

Get the graphic state of the current path.

May return null if this element does not have a GraphicState.

### Matrix

```csharp
Matrix Datalogics.PDFL.Element.Matrix { get; set; }
```

The transformation matrix for the element.

### PaintOp

```csharp
PathPaintOpFlags Datalogics.PDFL.Path.PaintOp { get; set; }
```

Gets the fill and stroke attributes of a path.

### Segments

```csharp
System.Collections.Generic.IList<Segment> Datalogics.PDFL.Path.Segments { get; set; }
```

Get the segments of the path.

Returns a list of Segment objects, one for each segment in the path.

## Methods

### AddCurve

```csharp
void Datalogics.PDFL.Path.AddCurve(Point Point1, Point Point2, Point Point3)
```

**Parameters**

- `Point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): first Bezier control point
- `Point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): second Bezier control point
- `Point3` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the ending Point of the Bezier curve which will also be the current point of the current path.

**Returns:** `void`

Adds a Bezier curve from the current path using the first two points specified as Bezier control points ending at the third point. The new current point is then set to the third point.

### AddCurveV

```csharp
void Datalogics.PDFL.Path.AddCurveV(Point Point1, Point Point2)
```

**Parameters**

- `Point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): first Bezier control point
- `Point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the ending Point of the Bezier curve which will also be the new current point of the path.

**Returns:** `void`

Adds a Bezier curve from the current path. This extends from the current path to the point Point2 using the current point and the first point specified as Bezier control points ending at the second point. The new current point is then set to the second point.

### AddCurveY

```csharp
void Datalogics.PDFL.Path.AddCurveY(Point Point1, Point Point2)
```

**Parameters**

- `Point1` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): first Bezier control point
- `Point2` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): second Bezier control point and the ending Point of the Bezier curve which will also be the new current point of the path.

**Returns:** `void`

Adds a Bezier curve from the current path. This extends from the current path to the point Point2 using the two points specified as Bezier control points ending at the second point. The new current point is then set to the second point.

### AddLine

```csharp
void Datalogics.PDFL.Path.AddLine(Point Point)
```

**Parameters**

- `Point` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the coordinates of the endpoint of the new line.

**Returns:** `void`

Adds a line to the current path from the current path position. The given point becomes the new current position.

### AddRect

```csharp
void Datalogics.PDFL.Path.AddRect(Point Point, double Width, double Height)
```

**Parameters**

- `Point` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the coordinates of the lower left corner of the new rectangle.
- `Width` (`double`): the width of the new rectangle.
- `Height` (`double`): the height of the new rectangle.

**Returns:** `void`

Adds a rectangle to the current path with the lower left corner at the give point, and with the width and height specified.

### Clone

```csharp
new Path Datalogics.PDFL.Path.Clone()
```

**Returns:** `new Path`

The copied path.

Makes a copy of the path.

Make a copy of an path to obtain a new path that has a distinct set of attributes.

### Clone

```csharp
new Path Datalogics.PDFL.Path.Clone(ElementCloneFlags cloneFlags)
```

**Parameters**

- `cloneFlags` ([`ElementCloneFlags`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ElementCloneFlags.md)): Flags that modify the cloning operation.

**Returns:** `new Path`

The copied path.

Makes a copy of the path.

Make a copy of an path to obtain a new path that has a distinct set of attributes.

### ClosePath

```csharp
void Datalogics.PDFL.Path.ClosePath()
```

**Returns:** `void`

Closes the current subpath.

### ColorConvert

```csharp
Path Datalogics.PDFL.Path.ColorConvert(Document document, ColorProfile prof, RenderIntent intent, bool embed)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the element belongs to.
- `prof` ([`ColorProfile`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ColorProfile.md)): The ICC ColorProfile to be applied.
- `intent` ([`RenderIntent`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/RenderIntent.md)): The ICC Rendering Intent for the ColorProfile
- `embed` (`bool`): If true, embed the color space and make the object calibrated. If it is false and the target profile is CMYK, RGB, or Gray, the colors space of the resulting object, after conversion, will be DeviceCMYK, DeviceRGB, or DeviceGray, respectively.

**Returns:** [`Path`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Path.md)

A new Path with the applied ICC ColorProfile.

Applies the specified ICC ColorProfile to the Path

### Dispose

```csharp
void Datalogics.PDFL.Element.Dispose()
```

**Returns:** `void`

### MoveTo

```csharp
void Datalogics.PDFL.Path.MoveTo(Point Point)
```

**Parameters**

- `Point` ([`Point`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Point.md)): the coordinates of the new current point.

**Returns:** `void`

Moves the current point of the path to the given point.

### Rotate

```csharp
void Datalogics.PDFL.Element.Rotate(double theta)
```

**Parameters**

- `theta` (`double`): The rotation angle in degrees.

**Returns:** `void`

Rotate an element by theta degrees counterclockwise using the matrix [ cos T sin T -sin T cos T 0 0 ].

### Scale

```csharp
void Datalogics.PDFL.Element.Scale(double sx, double sy)
```

**Parameters**

- `sx` (`double`): The horizontal scale factor.
- `sy` (`double`): The vertical scale factor.

**Returns:** `void`

Scale an element by (sx,sy) units using the matrix [ sx 0 0 sy 0 0 ].

### Translate

```csharp
void Datalogics.PDFL.Element.Translate(double tx, double ty)
```

**Parameters**

- `tx` (`double`): The horizontal translation distance in user space units.
- `ty` (`double`): The vertical translation distance in user space units.

**Returns:** `void`

Translate an element by (tx,ty) units using the matrix [ 1 0 0 1 tx ty ].
