# PDFOptimizer Class

> Implementation of the PDF Optimizer function.

- Product: Adobe PDF Library 18
- Language: Java
- Version: APDFL18.0.5PlusP2a
- HTML page: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/PDFOptimizer
- Version index: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/llms.txt

```java
class PDFOptimizer
```

**Namespace:** `com::datalogics::PDFL`

## 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/apdfl18/Java/APDFL18.0.5PlusP2a/class/CancelProc.md), [`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/Document.md), [`JavaStreamFile`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/JavaStreamFile.md), [`ProgressMonitor`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/ProgressMonitor.md)

## Constructors

### PDFOptimizer

```java
com.datalogics.PDFL.PDFOptimizer.PDFOptimizer()
```

*constructor*

Construct a CPDFOptimizer, with default Options.

## Methods

### delete

```java
synchronized void com.datalogics.PDFL.PDFOptimizer.delete(Boolean disposing)
```

*protected*

**Parameters**

- `disposing` (`Boolean`)

**Returns:** `synchronized void`

### delete

```java
synchronized void com.datalogics.PDFL.PDFOptimizer.delete()
```

**Returns:** `synchronized void`

### finalize

```java
void com.datalogics.PDFL.PDFOptimizer.finalize()
```

*protected*

**Returns:** `void`

### getCompressionQuality

```java
CompressQuality com.datalogics.PDFL.PDFOptimizer.getCompressionQuality(CompressImageType type)
```

**Parameters**

- `type` (`CompressImageType`)

**Returns:** `CompressQuality`

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

### getMajorVersion

```java
short com.datalogics.PDFL.PDFOptimizer.getMajorVersion()
```

**Returns:** `short`

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

NOTE: A value of 0 indicates the Optimizer will decide what version it should be.

### getMaxResolution

```java
int com.datalogics.PDFL.PDFOptimizer.getMaxResolution(CompressImageType type)
```

**Parameters**

- `type` (`CompressImageType`)

**Returns:** `int`

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

### getMinorVersion

```java
short com.datalogics.PDFL.PDFOptimizer.getMinorVersion()
```

**Returns:** `short`

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

### getObjectCompression

```java
ObjectCompressionType com.datalogics.PDFL.PDFOptimizer.getObjectCompression()
```

**Returns:** `ObjectCompressionType`

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

### getOption

```java
boolean com.datalogics.PDFL.PDFOptimizer.getOption(OptimizerOption option)
```

**Parameters**

- `option` (`OptimizerOption`)

**Returns:** `boolean`

Get the value of a single Optimizer Option.

### getRecompressionType

```java
CompressionType com.datalogics.PDFL.PDFOptimizer.getRecompressionType(CompressImageType type)
```

**Parameters**

- `type` (`CompressImageType`)

**Returns:** `CompressionType`

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

### getResampleToResolution

```java
int com.datalogics.PDFL.PDFOptimizer.getResampleToResolution(CompressImageType type)
```

**Parameters**

- `type` (`CompressImageType`)

**Returns:** `int`

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

### optimize

```java
void com.datalogics.PDFL.PDFOptimizer.optimize(Document doc, javax.imageio.stream.ImageOutputStream stream)
```

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/Document.md))
- `stream` (`javax.imageio.stream.ImageOutputStream`)

**Returns:** `void`

### optimize

```java
void com.datalogics.PDFL.PDFOptimizer.optimize(Document doc, javax.imageio.stream.ImageOutputStream stream, ProgressMonitor progressMonitor, CancelProc cancelProc)
```

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/Document.md))
- `stream` (`javax.imageio.stream.ImageOutputStream`)
- `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/ProgressMonitor.md))
- `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/CancelProc.md))

**Returns:** `void`

### optimize

```java
void com.datalogics.PDFL.PDFOptimizer.optimize(Document document, JavaStreamFile dest)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/Document.md))
- `dest` ([`JavaStreamFile`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/JavaStreamFile.md))

**Returns:** `void`

### optimize

```java
void com.datalogics.PDFL.PDFOptimizer.optimize(Document document, JavaStreamFile dest, ProgressMonitor progressMonitor, CancelProc cancelProc)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/Document.md))
- `dest` ([`JavaStreamFile`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/JavaStreamFile.md))
- `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/ProgressMonitor.md))
- `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/CancelProc.md))

**Returns:** `void`

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

### optimize

```java
void com.datalogics.PDFL.PDFOptimizer.optimize(Document document, String newPath)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/Document.md))
- `newPath` (`String`)

**Returns:** `void`

### optimize

```java
void com.datalogics.PDFL.PDFOptimizer.optimize(Document document, String newPath, ProgressMonitor progressMonitor, CancelProc cancelProc)
```

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/Document.md))
- `newPath` (`String`)
- `progressMonitor` ([`ProgressMonitor`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/ProgressMonitor.md))
- `cancelProc` ([`CancelProc`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2a/class/CancelProc.md))

**Returns:** `void`

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

### setCompressionQuality

```java
void com.datalogics.PDFL.PDFOptimizer.setCompressionQuality(CompressImageType type, CompressQuality value)
```

**Parameters**

- `type` (`CompressImageType`)
- `value` (`CompressQuality`)

**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.

### setMajorVersion

```java
void com.datalogics.PDFL.PDFOptimizer.setMajorVersion(short major)
```

**Parameters**

- `major` (`short`)

**Returns:** `void`

Set the value for the Major Version for the optimized document.

### setMaxResolution

```java
void com.datalogics.PDFL.PDFOptimizer.setMaxResolution(CompressImageType type, int value)
```

**Parameters**

- `type` (`CompressImageType`)
- `value` (`int`)

**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.

### setMinorVersion

```java
void com.datalogics.PDFL.PDFOptimizer.setMinorVersion(short minor)
```

**Parameters**

- `minor` (`short`)

**Returns:** `void`

Set the value for the Minor Version for the optimized document.

### setObjectCompression

```java
void com.datalogics.PDFL.PDFOptimizer.setObjectCompression(ObjectCompressionType objectCompression)
```

**Parameters**

- `objectCompression` (`ObjectCompressionType`)

**Returns:** `void`

Set the value for the Object Compression for the optimized document.

### setOption

```java
void com.datalogics.PDFL.PDFOptimizer.setOption(OptimizerOption option, boolean value)
```

**Parameters**

- `option` (`OptimizerOption`)
- `value` (`boolean`)

**Returns:** `void`

Set the value of a single Optimizer option.

### setRecompressionType

```java
void com.datalogics.PDFL.PDFOptimizer.setRecompressionType(CompressImageType type, CompressionType value)
```

**Parameters**

- `type` (`CompressImageType`)
- `value` (`CompressionType`)

**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

```java
void com.datalogics.PDFL.PDFOptimizer.setResampleToResolution(CompressImageType type, int value)
```

**Parameters**

- `type` (`CompressImageType`)
- `value` (`int`)

**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.
