Class PDFImageXObject

All Implemented Interfaces:
PDFWritable

public class PDFImageXObject extends PDFXObject
PDF XObject A derivative of the PDF Object, is a PDF Stream that has not only a dictionary but a stream of image data. The dictionary just provides information like the stream length. This outputs the image dictionary and the image data. This is used as a reference for inserting the same image in the document in another place.
  • Constructor Details

    • PDFImageXObject

      public PDFImageXObject(int xnumber, PDFImage img)
      create an XObject with the given number and name and load the image in the object
      Parameters:
      xnumber - the pdf object X number
      img - the pdf image that contains the image data
  • Method Details

    • output

      public int output(OutputStream stream) throws IOException
      Output the image as PDF. This sets up the image dictionary and adds the image data stream.
      Overrides:
      output in class AbstractPDFStream
      Parameters:
      stream - the output stream to write the data
      Returns:
      the length of the data written
      Throws:
      IOException - if there is an error writing the data
    • populateStreamDict

      protected void populateStreamDict(Object lengthEntry)
      Populates the dictionary with all necessary entries for the stream. Override this method if you need additional entries.
      Overrides:
      populateStreamDict in class PDFXObject
      Parameters:
      lengthEntry - value for the /Length entry
    • outputRawStreamData

      protected void outputRawStreamData(OutputStream out) throws IOException
      Sends the raw stream data to the target OutputStream.
      Specified by:
      outputRawStreamData in class AbstractPDFStream
      Parameters:
      out - OutputStream to write to
      Throws:
      IOException - In case of an I/O problem
    • getSizeHint

      protected int getSizeHint() throws IOException
      Returns a value that hints at the size of the encoded stream. This is used to optimize buffer allocation so fewer buffer reallocations are necessary.
      Overrides:
      getSizeHint in class PDFXObject
      Returns:
      an estimated size (0 if no hint can be given)
      Throws:
      IOException - in case of an I/O problem
    • prepareImplicitFilters

      protected void prepareImplicitFilters()
      Prepares implicit filters (such as the DCTFilter for JPEG images). You must make sure that the appropriate filters are in the filter list at the right places.
      Overrides:
      prepareImplicitFilters in class AbstractPDFStream
    • getDefaultFilterName

      protected String getDefaultFilterName()
      Returns the name of a suitable filter for this PDF object. This class uses the PDFImage instance to determine the default filter.
      Overrides:
      getDefaultFilterName in class AbstractPDFStream
      Returns:
      the default filter
      See Also:
    • multipleFiltersAllowed

      protected boolean multipleFiltersAllowed()
      Whether multiple filters can be applied.
      Overrides:
      multipleFiltersAllowed in class AbstractPDFStream
      Returns:
      true if multiple filters allowed
    • getChildren

      public void getChildren(Set<PDFObject> children)
      Overrides:
      getChildren in class AbstractPDFStream