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 Details

    • DEFAULT_FILTER

      public static final String DEFAULT_FILTER
      Key for the default filter
      See Also:
    • CONTENT_FILTER

      public static final String CONTENT_FILTER
      Key for the filter used for normal content
      See Also:
    • PRECOMPRESSED_FILTER

      public static final String PRECOMPRESSED_FILTER
      Key for the filter used for precompressed content
      See Also:
    • IMAGE_FILTER

      public static final String IMAGE_FILTER
      Key for the filter used for images
      See Also:
    • JPEG_FILTER

      public static final String JPEG_FILTER
      Key for the filter used for JPEG images
      See Also:
    • TIFF_FILTER

      public static final String TIFF_FILTER
      Key for the filter used for TIFF images
      See Also:
    • FONT_FILTER

      public static final String FONT_FILTER
      Key for the filter used for fonts
      See Also:
    • METADATA_FILTER

      public static final String METADATA_FILTER
      Key for the filter used for metadata
      See Also:
    • filters

      private List<PDFFilter> filters
    • ignoreASCIIFilters

      private boolean ignoreASCIIFilters
    • disableAllFilters

      private boolean disableAllFilters
  • Constructor Details

    • 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 Details

    • 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
    • getFilters

      List<PDFFilter> getFilters()
    • 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
    • populateNamesAndParms

      private int populateNamesAndParms(List names, List parms)
    • buildFilterEntries

      private String buildFilterEntries(List names)
    • putFilterEntries

      private void putFilterEntries(PDFDictionary dict, List names)
    • buildDecodeParms

      private String buildDecodeParms(List parms)
    • putDecodeParams

      private void putDecodeParams(PDFDictionary dict, List parms)
    • 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