org.apache.fop.pdf

## Class PDFFilterList

- java.lang.Object
- - org.apache.fop.pdf.PDFFilterList

    public class PDFFilterList
    extends Object

This class represents a list of PDF filters to be applied when serializing the output of a PDF object.

### Field Summary

Fields
`static String` `CONTENT_FILTER` Key for the filter used for normal content
`static String` `DEFAULT_FILTER` Key for the default filter
`static String` `FONT_FILTER` Key for the filter used for fonts
`static String` `IMAGE_FILTER` Key for the filter used for images
`static String` `JPEG_FILTER` Key for the filter used for JPEG images
`static String` `METADATA_FILTER` Key for the filter used for metadata
`static String` `PRECOMPRESSED_FILTER` Key for the filter used for precompressed content
`static String` `TIFF_FILTER` Key for the filter used for TIFF images

### Constructor Summary

Constructors
Constructor and Description
`PDFFilterList()` Default constructor.
`PDFFilterList(boolean ignoreASCIIFilters)` Use this descriptor if you want to have ASCII filters (such as ASCIIHex and ASCII85) ignored, for example, when encryption is active.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addDefaultFilters(Map filters, String type)` Adds the default filters to this stream.
`void` `addFilter(PDFFilter filter)` Add a filter for compression of the stream.
`void` `addFilter(String filterType)` Add a filter for compression of the stream by name.
`OutputStream` `applyFilters(OutputStream stream)` Applies all registered filters as necessary.
`protected String` `buildFilterDictEntries()` Apply the filters to the data in the order given and return the /Filter and /DecodeParms entries for the stream dictionary.
`void` `ensureFilterInPlace(PDFFilter pdfFilter)` Checks the filter list for the filter and adds it in the correct place if necessary.
`boolean` `isDisableAllFilters()` Returns true if all filters are disabled.
`boolean` `isInitialized()` Indicates whether the filter list is already initialized.
`protected void` `putFilterDictEntries(PDFDictionary dict)` Apply the filters to the data in the order given and add the /Filter and /DecodeParms entries to the stream dictionary.
`void` `setDisableAllFilters(boolean value)` Used to disable all filters.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### DEFAULT_FILTER

    public static final String DEFAULT_FILTER

Key for the default filter

See Also:
  Constant Field Values

#### CONTENT_FILTER

    public static final String CONTENT_FILTER

Key for the filter used for normal content

See Also:
  Constant Field Values

#### PRECOMPRESSED_FILTER

    public static final String PRECOMPRESSED_FILTER

Key for the filter used for precompressed content

See Also:
  Constant Field Values

#### IMAGE_FILTER

    public static final String IMAGE_FILTER

Key for the filter used for images

See Also:
  Constant Field Values

#### JPEG_FILTER

    public static final String JPEG_FILTER

Key for the filter used for JPEG images

See Also:
  Constant Field Values

#### TIFF_FILTER

    public static final String TIFF_FILTER

Key for the filter used for TIFF images

See Also:
  Constant Field Values

#### FONT_FILTER

    public static final String FONT_FILTER

Key for the filter used for fonts

See Also:
  Constant Field Values

#### METADATA_FILTER

    public static final String METADATA_FILTER

Key for the filter used for metadata

See Also:
  Constant Field Values

### Constructor Detail

#### PDFFilterList

    public PDFFilterList()

Default constructor.

The flag for ignoring ASCII filters defaults to false.

#### PDFFilterList

    public PDFFilterList(boolean ignoreASCIIFilters)

Use this descriptor if you want to have ASCII filters (such as ASCIIHex and ASCII85) ignored, for example, when encryption is active.

Parameters:
  `ignoreASCIIFilters` - true if ASCII filters should be ignored

### Method Detail

#### setDisableAllFilters

    public void setDisableAllFilters(boolean value)

Used to disable all filters.

Parameters:
  `value` - true if all filters shall be disabled

#### isDisableAllFilters

    public boolean isDisableAllFilters()

Returns true if all filters are disabled.

Returns:
  true if all filters are disabled

#### isInitialized

    public boolean isInitialized()

Indicates whether the filter list is already initialized.

Returns:
  true if more there are filters present

#### addFilter

    public void addFilter(PDFFilter filter)

Add a filter for compression of the stream. Filters are applied in the order they are added. This should always be a new instance of the particular filter of choice. The applied flag in the filter is marked true after it has been applied to the data.

Parameters:
  `filter` - filter to add

#### addFilter

    public void addFilter(String filterType)

Add a filter for compression of the stream by name.

Parameters:
  `filterType` - name of the filter to add

#### ensureFilterInPlace

    public void ensureFilterInPlace(PDFFilter pdfFilter)

Checks the filter list for the filter and adds it in the correct place if necessary.

Parameters:
  `pdfFilter` - the filter to check / add

#### addDefaultFilters

    public void addDefaultFilters(Map filters,
                                  String type)

Adds the default filters to this stream.

Parameters:
  `filters` - Map of filters
  `type` - which filter list to modify

#### buildFilterDictEntries

    protected String buildFilterDictEntries()

Apply the filters to the data in the order given and return the /Filter and /DecodeParms entries for the stream dictionary. If the filters have already been applied to the data (either externally, or internally) then the dictionary entries are built and returned.

Returns:
  a String representing the filter list

#### putFilterDictEntries

    protected void putFilterDictEntries(PDFDictionary dict)

Apply the filters to the data in the order given and add the /Filter and /DecodeParms entries to the stream dictionary. If the filters have already been applied to the data (either externally, or internally) then the dictionary entries added.

Parameters:
  `dict` - the PDFDictionary to set the entries on

#### applyFilters

    public OutputStream applyFilters(OutputStream stream)
                              throws IOException

Applies all registered filters as necessary. The method returns an OutputStream which will receive the filtered contents.

Parameters:
  `stream` - raw data output stream
Returns:
  OutputStream filtered output stream
Throws:
  `IOException` - In case of an I/O problem