# PDFOptimizer Class

> Implementation of the PDF Optimizer function.

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

```csharp
class PDFOptimizer : SystemIDisposable
```

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

**Inherits from:** `SystemIDisposable`

## Description

Implementation of the PDF Optimizer function.

Use the PDFOptimizer object to accumulate options for the Optimization, and to Optimize documents.

**Uses types:** [`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md), [`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md), [`CompressQuality`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressQuality.md), [`CompressionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionType.md), [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`ObjectCompressionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/ObjectCompressionType.md), [`OptimizerOption`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptimizerOption.md), [`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)

## Constructors

### PDFOptimizer

```csharp
Datalogics.PDFL.PDFOptimizer.PDFOptimizer()
```

*constructor*

Construct a CPDFOptimizer, with default Options.

## Properties

### MajorVersion

```csharp
short Datalogics.PDFL.PDFOptimizer.MajorVersion { get; set; }
```

Get the value of the Major Version of the optimized document.

### MinorVersion

```csharp
short Datalogics.PDFL.PDFOptimizer.MinorVersion { get; set; }
```

Get the value of the Minor Version of the optimized document.

### ObjectCompression

```csharp
ObjectCompressionType Datalogics.PDFL.PDFOptimizer.ObjectCompression { get; set; }
```

Get the value of the Object Compression of the optimized document.

## Methods

### Dispose

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

**Returns:** `void`

### GetCompressionQuality

```csharp
CompressQuality Datalogics.PDFL.PDFOptimizer.GetCompressionQuality(CompressImageType type)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query.

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

The compression quality level for the specified color model.

Get the value of the Compression Quality for a given color model.

### GetMaxResolution

```csharp
int Datalogics.PDFL.PDFOptimizer.GetMaxResolution(CompressImageType type)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query.

**Returns:** `int`

The maximum resolution in DPI above which images will be downsampled.

Get the value of the Max DPI for a given color model.

### GetOption

```csharp
bool Datalogics.PDFL.PDFOptimizer.GetOption(OptimizerOption option)
```

**Parameters**

- `option` ([`OptimizerOption`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptimizerOption.md)): The optimization option to query.

**Returns:** `bool`

true if the option is enabled, false if it is disabled.

Get the value of a single Optimizer Option.

### GetRecompressionType

```csharp
CompressionType Datalogics.PDFL.PDFOptimizer.GetRecompressionType(CompressImageType type)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query.

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

The compression type that will be applied to images of the specified color model.

Get the value of the Recompression Type for a given color model.

### GetResampleToResolution

```csharp
int Datalogics.PDFL.PDFOptimizer.GetResampleToResolution(CompressImageType type)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to query.

**Returns:** `int`

The target resolution in DPI to which images will be downsampled.

Get the value of the Resample To DPI for a given color model.

### Optimize

```csharp
void Datalogics.PDFL.PDFOptimizer.Optimize(Document doc, System.IO.Stream stream)
```

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md))
- `stream` (`System.IO.Stream`)

**Returns:** `void`

### Optimize

```csharp
void Datalogics.PDFL.PDFOptimizer.Optimize(Document doc, System.IO.Stream stream, ProgressMonitor progressMonitor, CancelProc cancelProc)
```

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md))
- `stream` (`System.IO.Stream`)
- `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md))
- `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md))

**Returns:** `void`

### Optimize

```csharp
void Datalogics.PDFL.PDFOptimizer.Optimize(Document document, string newPath)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document to optimize.
- `newPath` (`string`): The file system path where the optimized document will be saved.

**Returns:** `void`

Perform the Optimization of a single document, saving the result in a new file.

### Optimize

```csharp
void Datalogics.PDFL.PDFOptimizer.Optimize(Document document, string newPath, ProgressMonitor progressMonitor, CancelProc cancelProc)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md)): The document to optimize.
- `newPath` (`string`): The file system path where the optimized document will be saved.
- `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor.md)): An optional progress monitor callback, or NULL.
- `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/CancelProc.md)): An optional cancellation callback, or NULL.

**Returns:** `void`

Perform the Optimization of a single document, saving the result in a new file.

### SetCompressionQuality

```csharp
void Datalogics.PDFL.PDFOptimizer.SetCompressionQuality(CompressImageType type, CompressQuality value)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set.
- `value` ([`CompressQuality`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressQuality.md)): The compression quality level to apply.

**Returns:** `void`

Set the value for the Compression Quality for a given color model. Any image that recompressed, regardless of the reason, will use this Quality for the Quality value of the specific compression type.

### SetMaxResolution

```csharp
void Datalogics.PDFL.PDFOptimizer.SetMaxResolution(CompressImageType type, int value)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set.
- `value` (`int`): The maximum resolution in DPI.

**Returns:** `void`

Set the value for the Max DPI for a given color model. Any image above this resolution will be down sampled, if the Downsampling option is true for this color model.

### SetOption

```csharp
void Datalogics.PDFL.PDFOptimizer.SetOption(OptimizerOption option, bool value)
```

**Parameters**

- `option` ([`OptimizerOption`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/OptimizerOption.md)): The optimization option to set.
- `value` (`bool`): true to enable the option, false to disable it.

**Returns:** `void`

Set the value of a single Optimizer option.

### SetRecompressionType

```csharp
void Datalogics.PDFL.PDFOptimizer.SetRecompressionType(CompressImageType type, CompressionType value)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set.
- `value` ([`CompressionType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressionType.md)): The compression type to apply.

**Returns:** `void`

Set the value for the recompression Type for a given color model. Any image that is downsampled will be compressed using this method, if the Downsampling option is true for this color model. Any image that is not downsampled, will be converted to this compression type, if it is not already compressed in this type, and the Recompression option for this color model is true.

### SetResampleToResolution

```csharp
void Datalogics.PDFL.PDFOptimizer.SetResampleToResolution(CompressImageType type, int value)
```

**Parameters**

- `type` ([`CompressImageType`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/enum/CompressImageType.md)): The image color type (Color, Gray, or BW) to set.
- `value` (`int`): The target resolution in DPI.

**Returns:** `void`

Set the value for the Resample To DPI for a given color model. Any image will be downsampled to this resolution, if the Downsampling option is true for this color model.
