Summary: Constants | Ctors | Methods | Inherited Methods | [Expand All]
public class

# Flattener

extends Object
implements AutoCloseable

java.lang.Object
↳ | com.pdftron.pdf.Flattener

## Class Overview

Flattener is a optional PDFNet add-on that can be used to simplify and optimize existing PDF's to render faster on devices with lower memory and speeds. PDF documents can frequently contain very complex page description (e.g. thousands of paths, different shadings, color spaces, blend modes, large images etc.) that may not be suitable for interactive viewing on mobile devices. Flattener can be used to speed-up PDF rendering on mobile devices and on the Web by simplifying page content (e.g. flattening complex graphics into images) while maintaining vector text whenever possible. By using the FlattenMode::e_simple option each page in the PDF will be reduced to a single background image, with the remaining text over top in vector format. Some text may still get flattened, in particular any text that is clipped, or underneath, other content that will be flattened. On the other hand the FlattenMode::e_fast will not flatten simple content, such as simple straight lines, nor will it flatten Type3 fonts.

Note: 'Flattener' is available as a separately licensable add-on to PDFNet core license.

Note: See 'pdftron.PDF.Optimizer' for alternate approach to optimize PDFs with focus on file size reduction.

## Summary

Constants
int | e_default | Render text that are somewhat clipped or occluded.
int | e_fast | Feature reduce PDF while trying to preserve some complex PDF features (such as vector figures, transparency, shadings, blend modes, Type3 fonts etc.) for pages that are already fast to render.
int | e_keep_all | Only render text that are completely occluded, or used as a clipping path.
int | e_keep_most | Only render text that are seriously clipped or occluded.
int | e_simple | Feature reduce PDF to a simple two layer representation consisting of a single background RGB image and a simple top text layer.
int | e_strict | Render text that are marginally clipped or occluded.
int | e_very_strict | Render (flatten) any text that is clipped or occluded.

Public Constructors
| Flattener() Default constructor.

Public Methods
void | Process(PDFDoc doc, int mode) Process each page in the PDF, flattening content that matches the mode criteria.
void | SetThreshold(int threshold) Used to control how precise or relaxed text flattening is.
void | close() Frees the native memory of the object.
void | destroy() Frees the native memory of the object.
void | setDPI(int dpi) The output resolution, from 1 to 1000, in Dots Per Inch (DPI) at which to render elements which cannot be directly converted.
void | setJPGQuality(int quality) Specifies the compression quality to use when generating JPEG images.
void | setMaximumImagePixels(int max_pixels) Specifies the maximum image size in pixels.
void | setPreferJPG(boolean jpg) Specifies whether to leave images in existing compression, or as JPEG.

[Expand] Inherited Methods
From class java.lang.Object
boolean | equals(Object arg0)
final Class<?> | getClass()
int | hashCode()
final void | notify()
final void | notifyAll()
String | toString()
final void | wait(long arg0, int arg1)
final void | wait(long arg0)
final void | wait()
From interface java.lang.AutoCloseable
abstract void | close()

## Constants

#### public static final int e_default

Render text that are somewhat clipped or occluded.

Constant Value: 2 (0x00000002)

#### public static final int e_fast

Feature reduce PDF while trying to preserve some complex PDF features (such as vector figures, transparency, shadings, blend modes, Type3 fonts etc.) for pages that are already fast to render. This option can also result in smaller & faster files compared to e_simple, but the pages may have more complex structure.

Constant Value: 1 (0x00000001)

#### public static final int e_keep_all

Only render text that are completely occluded, or used as a clipping path.

Constant Value: 4 (0x00000004)

#### public static final int e_keep_most

Only render text that are seriously clipped or occluded.

Constant Value: 3 (0x00000003)

#### public static final int e_simple

Feature reduce PDF to a simple two layer representation consisting of a single background RGB image and a simple top text layer.

Constant Value: 0 (0x00000000)

#### public static final int e_strict

Render text that are marginally clipped or occluded.

Constant Value: 1 (0x00000001)

#### public static final int e_very_strict

Render (flatten) any text that is clipped or occluded.

Constant Value: 0 (0x00000000)

## Public Constructors

#### public Flattener ()

Default constructor.

##### Throws

PDFNetException |

## Public Methods

#### public void Process (PDFDoc doc, int mode)

Process each page in the PDF, flattening content that matches the mode criteria.

##### Parameters

doc | the document to flatten.
mode | indicates the criteria for which elements are flattened.

##### Throws

PDFNetException |

#### public void SetThreshold (int threshold)

Used to control how precise or relaxed text flattening is. When some text is preserved (not flattened to image) the visual appearance of the document may be altered.

##### Parameters

threshold | the threshold setting to use.

##### Throws

PDFNetException |

#### public void close ()

Frees the native memory of the object. This can be explicity called to control the deallocation of native memory and avoid situations where the garbage collector does not free the object in a timely manner.

##### Throws

PDFNetException |

#### public void destroy ()

Frees the native memory of the object. This can be explicity called to control the deallocation of native memory and avoid situations where the garbage collector does not free the object in a timely manner.

#### public void setDPI (int dpi)

The output resolution, from 1 to 1000, in Dots Per Inch (DPI) at which to render elements which cannot be directly converted. the default value is 150 Dots Per Inch

##### Parameters

dpi | the resolution in Dots Per Inch

##### Throws

PDFNetException |

#### public void setJPGQuality (int quality)

Specifies the compression quality to use when generating JPEG images.

##### Parameters

quality | the JPEG compression quality, from 0(highest compression) to 100(best quality).

##### Throws

PDFNetException |

#### public void setMaximumImagePixels (int max_pixels)

Specifies the maximum image size in pixels.

##### Parameters

max_pixels | the maximum number of pixels an image can have.

##### Throws

PDFNetException |

#### public void setPreferJPG (boolean jpg)

Specifies whether to leave images in existing compression, or as JPEG.

##### Parameters

jpg | if true PDF will contain all JPEG images.

##### Throws

PDFNetException |