# Page Class

> Represents a page within a PDF file.

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

```csharp
class Page : SystemIDisposable
```

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

**Inherits from:** `SystemIDisposable`

## Description

Represents a page within a PDF file.

The page is the basic object used for organizing content in a PDF document.

**Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`Bookmark`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Bookmark.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CircleAnnotation.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/FreeTextAnnotation.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/LinkAnnotation.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PolygonAnnotation.md), [`Redaction`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Redaction.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SquareAnnotation.md), [`StructElement`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/StructElement.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/UnderlineAnnotation.md)

**Uses types:** [`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md), [`ColorConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams.md), [`Content`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md), [`Image`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Image.md), [`ImageCollection`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ImageCollection.md), [`Ink`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md), [`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md), [`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md), [`PDFDict`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFDict.md), [`PDFObject`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFObject.md), [`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md), [`PageRotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/PageRotation.md), [`QREncodeParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QREncodeParams.md), [`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md), [`RenderProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RenderProgressProc.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md), [`SeparationParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationParams.md)

## Constructors

### Page

```csharp
Datalogics.PDFL.Page.Page(Document doc, int afterPageNum, Rect mediaBox)
```

*constructor*

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document in which the page is created.
- `afterPageNum` (`int`): The page number after which the new page is inserted. The first page is 0. Use PDBeforeFirstPage() (see PDExpT.h) to insert the new page at the beginning of a document.
- `mediaBox` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A rectangle specifying the page's media box, specified in user space coordinates.

Creates and acquires a new page. The page is inserted into the document at the specified location. Call PDPageRelease() when you are done using the page.

### Page

```csharp
Datalogics.PDFL.Page.Page(Document doc, int pageNum)
```

*constructor*

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document containing the page to acquire.
- `pageNum` (`int`): The page number of the page to acquire. The first page is 0.

Gets a Page from a document.

**Exceptions**

- `genErrBadParm`

## Properties

### ArtBox

```csharp
Rect Datalogics.PDFL.Page.ArtBox { get; set; }
```

Get the page's ArtBox.

The ArtBox defines the extent of the page's meaningful content (including potential white space) as intended by the page's creator.

### BBox

```csharp
Rect Datalogics.PDFL.Page.BBox { get; }
```

Get the page's Bounding Box.

The BBox is the smallest rectangle that encloses all of the page's visible content. Unlike the other page boxes, it is calculated from the page content and cannot be set directly.

### BleedBox

```csharp
Rect Datalogics.PDFL.Page.BleedBox { get; set; }
```

Get the page's BleedBox.

The BleedBox defines the region to which the contents of the page shall be clipped when output in a production environment. It includes any extra bleed area needed to account for limitations of cutting, folding, and trimming equipment.

### Content

```csharp
Content Datalogics.PDFL.Page.Content { get; }
```

Creates a Content from the Page object's contents and resources.

Calls to GetContent without an intervening UpdateContent return the same cached Content object, so edits made through earlier handles are visible. After a call to UpdateContent, a subsequent GetContent returns a fresh Content that reflects the committed state.

### CropBox

```csharp
Rect Datalogics.PDFL.Page.CropBox { get; set; }
```

Get the page's CropBox.

The CropBox defines the region to which the contents of the page are to be clipped (cropped) when displayed or printed. The default value is the page's MediaBox.

### MediaBox

```csharp
Rect Datalogics.PDFL.Page.MediaBox { get; set; }
```

Get the page's MediaBox.

The MediaBox defines the boundaries of the physical medium on which the page is intended to be displayed or printed. It is the largest of the page boxes and serves as the default for the CropBox.

### NumAnnotations

```csharp
int Datalogics.PDFL.Page.NumAnnotations { get; }
```

Gets the number of annotations on a page. Annotations associated with pop-up windows (such as strikeouts) are counted as two annotations. Widget annotations (form fields) are included in the count.

### PDFDict

```csharp
PDFDict Datalogics.PDFL.Page.PDFDict { get; }
```

Retrieve the PDFObject representation of this object.

### PageNumber

```csharp
int Datalogics.PDFL.Page.PageNumber { get; }
```

Retrieve the page number for this PDF page.

Page numbers always start at zero.

### RenderWarnings

```csharp
int Datalogics.PDFL.Page.RenderWarnings { get; }
```

Reports possible page rendering problems.

### Rotation

```csharp
PageRotation Datalogics.PDFL.Page.Rotation { get; set; }
```

The number of degrees by which the page is rotated clockwise when displayed or printed.

### TrimBox

```csharp
Rect Datalogics.PDFL.Page.TrimBox { get; set; }
```

Get the page's TrimBox.

The TrimBox defines the intended dimensions of the finished page after trimming. It may be smaller than the MediaBox to account for production- related content such as printing instructions or cut marks.

### UserUnit

```csharp
float Datalogics.PDFL.Page.UserUnit { get; set; }
```

Gets the size of default user space units for the page.

## Methods

### AddAnnotation

```csharp
void Datalogics.PDFL.Page.AddAnnotation(int addAfter, Annotation annot)
```

**Parameters**

- `addAfter` (`int`): The index into the page's annotation array where the annotation is added. The first annotation in the array has an index of zero. Passing a value of -2 adds the annotation to the end of the array. Passing other negative values produces undefined results.
- `annot` ([`Annotation`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Annotation.md)): The annotation to add.

**Returns:** `void`

(Deprecated, function may be removed in the future. Instead, use the constructor for Annotation or a subclass of Annotation.)

Adds an annotation at the specified location in a page's annotation array.

**Exceptions**

- `pdErrOpNotPermitted`: is raised if:

  • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags).

  • The annotation is of any other subtype and the document's permissions do not include Edit.

### AddNewAnnotation

```csharp
Annotation Datalogics.PDFL.Page.AddNewAnnotation(int addAfter, string subType, Rect initialRect)
```

**Parameters**

- `addAfter` (`int`): Where to add the annotation in the page's annotation array. Passing a value of -2 adds the annotation to the end of the array (this is generally what you should do unless you have a need to place the annotation at a special location in the array). Passing a value of -1 adds the annotation to the beginning of the array. Passing other negative values produces undefined results.
- `subType` (`string`): The subtype of the annotation to add.
- `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A pointer to a rectangle specifying the annotation's bounds, specified in user space coordinates.

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

The newly created annotation.

(Deprecated, function may be removed in the future. Instead, use the constructor for Annotation or a subclass of Annotation.)

Adds an annotation to the page. This method is equivalent to calling PDPageCreateAnnot() followed by PDPageAddAnnot().

**Exceptions**

- `pdErrOpNotPermitted`: is raised if:

  • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags).

  • The annotation is of any other subtype and the document's permissions do not include Edit.

### AddQRBarcode

```csharp
bool Datalogics.PDFL.Page.AddQRBarcode(QREncodeParams params_)
```

**Parameters**

- `params_` ([`QREncodeParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/QREncodeParams.md))

**Returns:** `bool`

if True, the Barcode was successfully added to the Page.

Add a QR Two-Dimensional Barcode encoded with the specified Params to the specified PDF page as an image.

### AddQRBarcode

```csharp
void Datalogics.PDFL.Page.AddQRBarcode(string textToEncode, double x, double y, double width, double height)
```

**Parameters**

- `textToEncode` (`string`): The Text to be encoded in the barcode
- `x` (`double`): The horizontal location on the page in points
- `y` (`double`): The vertical location on the page in points
- `width` (`double`): The width of the barcode image in points
- `height` (`double`): The height of the barcode image in points

**Returns:** `void`

Add a QR Two-Dimensional Barcode encoded with the specified Text to the page as an image.

### AsPDFObject

```csharp
PDFObject Datalogics.PDFL.Page.AsPDFObject()
```

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

Non-owning handle to this page as a generic PDFObject.

Suitable for storing in dicts/arrays as an indirect reference.

### ColorConvertContent

```csharp
bool Datalogics.PDFL.Page.ColorConvertContent(ColorConvertParams params_)
```

**Parameters**

- `params_` ([`ColorConvertParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ColorConvertParams.md))

**Returns:** `bool`

True if color conversion occurred. False if nothing was color converted.

Convert the colors (in place) in a page as specified by the params block by applying an ICC profile to the objects contained in the page.

### CreateAnnotation

```csharp
Annotation Datalogics.PDFL.Page.CreateAnnotation(string subType, Rect initialRect)
```

**Parameters**

- `subType` (`string`): The subtype of the annotation to add.
- `initialRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A pointer to a rectangle specifying the annotation's bounds, specified in user space coordinates.

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

The newly created annotation.

(Deprecated, function may be removed in the future. Instead, use the constructor for Annotation or a subclass of Annotation.)

Creates a new annotation, associated with the specified page's Document, but not added to the page. Use AddAnnotation to add the annotation to the page.

**Exceptions**

- `pdErrOpNotPermitted`: is raised if:

  • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags).

  • The annotation is of any other subtype and the document's permissions do not include Edit.

### Dispose

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

**Returns:** `void`

### DrawContents

```csharp
System.Byte[] Datalogics.PDFL.Page.DrawContents(DrawParams drawParams)
```

**Parameters**

- `drawParams` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation

**Returns:** `System.Byte[]`

an array of bytes containing the image.

Draw the contents of the page into a bitmap, and return the raw bitmap data as an array of bytes arranged in left to right, top to bottom order. Each row of the bitmap is aligned onto a four-byte boundary.

The amount of data returned depends on the destRect parameter. Using integer arithmetic:

stride = (width * components + 3) & ~3

array_size = stride * height

### DrawContents

```csharp
System.Collections.Generic.List< System.Drawing.Bitmap > Datalogics.PDFL.Page.DrawContents(DrawParams drawParams, System.Collections.Generic.IList< SeparationColorSpace > separations)
```

**Parameters**

- `drawParams` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation.
- `separations` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): List of colorants, where each SeparationColorSpace was constructed from an ink and a page. Their tint transforms and alternates will be ignored

**Returns:** `System.Collections.Generic.List< System.Drawing.Bitmap >`

List, that contains a bitmap of each ink

Draw the contents of this page to a list of grayscale bitmaps

### DrawContents

```csharp
void Datalogics.PDFL.Page.DrawContents(System.Drawing.Bitmap bitmap, DrawParams parms)
```

**Parameters**

- `bitmap` (`System.Drawing.Bitmap`): the image into which to rasterize the page.
- `parms` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation.

**Returns:** `void`

Draw the contents of this page to an image.

### DrawContents

```csharp
void Datalogics.PDFL.Page.DrawContents(System.Drawing.Bitmap bitmap, Matrix matrix, Rect updateRect)
```

**Parameters**

- `bitmap` (`System.Drawing.Bitmap`): the image into which to rasterize the page.
- `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): A matrix to concatenate onto the default page matrix. It is useful for converting from page to window coordinates and for scaling.
- `updateRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): the rectangle to draw, specified in user coordinates. Any objects outside the updateRect will not be drawn.

**Returns:** `void`

Draw the contents of this page to an image.
NOTE: This overload is deprecated, you should use the overload DrawContents(Bitmap, DrawParams).

### DrawContents

```csharp
void Datalogics.PDFL.Page.DrawContents(System.Drawing.IDeviceContext dc, DrawParams parms)
```

**Parameters**

- `dc` (`System.Drawing.IDeviceContext`): A device context onto which to draw the page.
- `parms` ([`DrawParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/DrawParams.md)): Parameters for the drawing operation.

**Returns:** `void`

Draw the contents of this page to a device context.

### DrawContents

```csharp
void Datalogics.PDFL.Page.DrawContents(System.Drawing.IDeviceContext dc, Matrix matrix, Rect updateRect)
```

**Parameters**

- `dc` (`System.Drawing.IDeviceContext`): A device context onto which to draw the page.
- `matrix` ([`Matrix`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Matrix.md)): A matrix to concatenate onto the default page matrix. It is useful for converting from page to window coordinates and for scaling.
- `updateRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): the rectangle to draw, specified in user coordinates. Any objects outside the updateRect will not be drawn.

**Returns:** `void`

Draw the contents of this page to a device context.

### FlattenOptionalContent

```csharp
bool Datalogics.PDFL.Page.FlattenOptionalContent()
```

**Returns:** `bool`

true if the page was successfully flattened, false otherwise.

Flattens optional content on the page.

This page will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made.

The document's default optional content context will be used to determine visibility of optional content.

The optional content information formerly associated with content on the page will NOT be deleted from the document, as it is possible for optional content groups to contain items on multiple pages.

### FlattenOptionalContent

```csharp
bool Datalogics.PDFL.Page.FlattenOptionalContent(OptionalContentContext occ)
```

**Parameters**

- `occ` ([`OptionalContentContext`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OptionalContentContext.md)): The optional content context in which content is checked for visibility.

**Returns:** `bool`

true if the page was successfully flattened, false otherwise.

Flattens optional content on the page.

This page will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made.

The optional content information formerly associated with content on the page will NOT be deleted from the document, as it is possible for optional content groups to contain items on multiple pages.

### GetAnnotation

```csharp
Annotation Datalogics.PDFL.Page.GetAnnotation(int annotIndex)
```

**Parameters**

- `annotIndex` (`int`): The index of the annotation to get on a page. The first annotation on a page has an index of zero.

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

The indexed annotation object.

Gets the annotIndex annotation on the page.

### GetBitmap

```csharp
System.Drawing.Bitmap Datalogics.PDFL.Page.GetBitmap(Rect exportRect, PageImageParams pip)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch.

  To export the entire page, set this parameter to the page's CropBox.

  User space coordinates correspond to the **unrotated** page; the rotation specified in Page.Rotation is not taken into account with these coordinates.
- `pip` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): Additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and height of the returned image are calculated using the exportRect and a resolution of 300.0.

**Returns:** `System.Drawing.Bitmap`

Export a region of a PDF page to a System.Drawing.Bitmap.

A particular size in pixels can be specified for the exported Bitmap by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight.

If the exportRect is smaller than the PDF page and pip.PixelWidth and pip.PixelHeight are set, then the resulting image will be of the size pip.PixelWidth x pip.PixelHeight and contain the area of the page inside the exportRect, scaled to fit.

It is also possible to use this function by specifying only pip.PixelWidth or only pip.PixelHeight. When only one is specified, the function will calculate the other.

### GetImage

```csharp
Image Datalogics.PDFL.Page.GetImage(Rect exportRect)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates.

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

An Image containing the rendered page region.

Export a region of a PDF page to an Image object.

If the exportRect is smaller than the PDF page, then the pixel width and pixel height of the resulting image will be calculated from the exportRect and a resolution of 300.0, containing the area of the page inside the exportRect, scaled to fit. If a specific pixel size or resolution is desired, use the version of GetImage that takes a PageImageParams as a parameter.

### GetImage

```csharp
Image Datalogics.PDFL.Page.GetImage(Rect exportRect, PageImageParams ImageParams)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates.
- `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0.

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

An Image containing the rendered page region.

Export a region of a PDF page to an Image object.

This version of GetImage can be used to specify a particular size in pixels for the exported image by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight.

If the exportRect is smaller than the PDF page and ImageParams.PixelWidth and ImageParams.PixelHeight are set, then the resulting image will be of the size ImageParams.PixelWidth x ImageParams.PixelHeight and contain the area of the page inside the exportRect, scaled to fit.

It is also possible to use this function by specifying only ImageParams.PixelWidth or only ImageParams.PixelHeight. When only one is specified, the function will calculate the other.

### GetImage

```csharp
Image Datalogics.PDFL.Page.GetImage(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates.
- `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0.
- `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace objects. This parameter is used to specify page's inks to be drawn. Each SeparationColorSpace must be constructed from an ink and a page. Their tint transforms and alternates will be ignored.

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

An Image containing the rendered page region.

Export a region of a PDF page to an Image object.

This version of GetImage can be used to specify a particular size in pixels for the exported image by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight.

It renders specified page's inks and ignores colorSpace parameter from ImageParams. This function always renders the page in DeviceN colorspace.

If the exportRect is smaller than the PDF page and ImageParams.PixelWidth and ImageParams.PixelHeight are set, then the resulting image will be of the size ImageParams.PixelWidth x ImageParams.PixelHeight and contain the area of the page inside the exportRect, scaled to fit.

It is also possible to use this function by specifying only ImageParams.PixelWidth or only ImageParams.PixelHeight. When only one is specified, the function will calculate the other.

### GetImageSeparations

```csharp
ImageCollection Datalogics.PDFL.Page.GetImageSeparations(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces, RenderProgressProc progressProc)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates.
- `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution.
- `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering.
- `progressProc` ([`RenderProgressProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/RenderProgressProc.md)): A callback to report rendering progress.

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

An ImageCollection containing one Image per separation colorant.

Export a region of a PDF page using the specified Separation ColorSpaces to an Image Collection object, with a progress callback.

### GetImageSeparations

```csharp
ImageCollection Datalogics.PDFL.Page.GetImageSeparations(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spacesCollection)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates.
- `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0.
- `spacesCollection` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering. Each SeparationColorSpace must be constructed from an ink and a page. Their tint transforms and alternates will be ignored.

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

An ImageCollection containing one Image per separation colorant.

Export a region of a PDF page using the specified Separation ColorSpaces to an Image Collection object.

This version of GetImage can be used to specify a particular size in pixels for the exported image by setting ImageParams.PixelWidth and/or ImageParams.PixelHeight.

If the exportRect is smaller than the PDF page and ImageParams.PixelWidth and ImageParams.PixelHeight are set, then the resulting image will be of the size ImageParams.PixelWidth x ImageParams.PixelHeight and contain the area of the page inside the exportRect, scaled to fit.

It is also possible to use this function by specifying only ImageParams.PixelWidth or only ImageParams.PixelHeight. When only one is specified, the function will calculate the other.

### GetOutputPreviewImage

```csharp
Image Datalogics.PDFL.Page.GetOutputPreviewImage(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates.
- `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0.
- `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering. Each SeparationColorSpace must be constructed from an ink and a page.

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

An Image representing the output preview of the page region.

Create an Output Preview image used when Soft Proofing a document prior to actual printing.

### GetOutputPreviewImage

```csharp
Image Datalogics.PDFL.Page.GetOutputPreviewImage(Rect exportRect, PageImageParams ImageParams, System.Collections.Generic.IList< SeparationColorSpace > spaces, bool simulateOverprint)
```

**Parameters**

- `exportRect` ([`Rect`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Rect.md)): A Rect describing the region of the page to export, specified in user space coordinates. One user unit corresponds to 1/72 inch. To export the entire page, set this parameter to the page's CropBox. User space coordinates correspond to the unrotated page; the rotation specified in Page.Rotation is not taken into account with these coordinates.
- `ImageParams` ([`PageImageParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PageImageParams.md)): A PageImageParams containing additional parameters for the exported image, including the exported image's pixel width, pixel height, and resolution. If these parameters are not specified, the pixel width and pixel height of the image are calculated using the exportRect and a resolution of 300.0.
- `spaces` ([`System.Collections.Generic.IList< SeparationColorSpace >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationColorSpace.md)): A collection of SeparationColorSpace class additional parameter for specifying colorants for bitmap rendering. Each SeparationColorSpace must be constructed from an ink and a page.
- `simulateOverprint` (`bool`): A flag that controls if Overprint is simulated or not for Spot Colorants. NOTE: A file with Overprinting, Process, and Spot Colorants can yield a different appearance when Simulation is enabled compared to when it's not.

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

An Image representing the output preview of the page region.

Create an Output Preview image used when Soft Proofing a document prior to actual printing.

### HasTransparency

```csharp
bool Datalogics.PDFL.Page.HasTransparency(bool includeAnnotAppearances)
```

**Parameters**

- `includeAnnotAppearances` (`bool`): If true, annotation appearances are included in the check; if false, annotation appearances will be ignored.

**Returns:** `bool`

true if the page uses transparency features, false otherwise.

Checks whether a page uses any transparency features.

Note: To determine whether a page uses transparency, the resources of the page must be enumerated (though the page contents do not need to be parsed). The page resources may not be optimized for slow (browser-based) connections, so calling Page.HasTransparency() before the page has been downloaded may cause unpleasant read behavior and performance problems.

### ListInks

```csharp
System.Collections.Generic.IList< Ink > Datalogics.PDFL.Page.ListInks()
```

**Returns:** [`System.Collections.Generic.IList< Ink >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md)

A list of Ink objects representing the inks used on this page.

Retrieve a list of all inks present on a page.

### ListInks

```csharp
System.Collections.Generic.IList< Ink > Datalogics.PDFL.Page.ListInks(bool includeOPI)
```

**Parameters**

- `includeOPI` (`bool`): If true, include inks contained in OPI dictionaries.

**Returns:** [`System.Collections.Generic.IList< Ink >`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Ink.md)

A list of Ink objects representing the inks used on this page.

Retrieve a list of all inks present on a page.

### MakeSeparations

```csharp
void Datalogics.PDFL.Page.MakeSeparations(SeparationParams params_)
```

**Parameters**

- `params_` ([`SeparationParams`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SeparationParams.md))

**Returns:** `void`

Generate print color separations for a page.

### RecognizePageContents

```csharp
void Datalogics.PDFL.Page.RecognizePageContents(Document doc, OCREngine engine)
```

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document the page being OCR'd belongs to
- `engine` ([`OCREngine`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/OCREngine.md)): The OCR engine instance that will be used to OCR document

**Returns:** `void`

Run optical character recognition (OCR) on a page.

### RemoveAnnotation

```csharp
void Datalogics.PDFL.Page.RemoveAnnotation(int annotIndex)
```

**Parameters**

- `annotIndex` (`int`): The index (into the page's annotation array) of the annotation to remove.

**Returns:** `void`

Removes an annotation from the specified page. Annotations are stored in arrays, which are automatically compressed when an annotation is removed. For this reason, if you use a loop in which you remove annotations, structure the code so the loop processes from the highest to the lowest index. If you loop the other direction, you will skip over annotations immediately following ones you remove.

**Exceptions**

- `pdErrOpNotPermitted`: is raised if:

  • The annotation is of subtype Text and the document's permissions do not include EditNotes (see PermissionFlags).

  • The annotation is of any other subtype and the document's permissions do not include Edit.

### UpdateContent

```csharp
void Datalogics.PDFL.Page.UpdateContent()
```

**Returns:** `void`

Commits in-memory edits to the Page's Content back into the Page, using the same compression filters the content was previously encoded with.

Edits made through the Content object returned by GetContent are held in memory until UpdateContent is called. Document.Save does not implicitly commit content edits; a Page that has been edited but not committed will be saved in its pre-edit state.
