Class PDResources

java.lang.Object
org.apache.pdfbox.pdmodel.PDResources
All Implemented Interfaces:
COSObjectable

public class PDResources extends Object implements COSObjectable
This represents a set of resources available at the page/pages/stream level.
Author:
Ben Litchfield, BM
  • Constructor Details

    • PDResources

      public PDResources()
      Default constructor.
    • PDResources

      public PDResources(COSDictionary resourceDictionary)
      Prepopulated resources.
      Parameters:
      resourceDictionary - The cos dictionary for this resource.
  • Method Details

    • getCOSDictionary

      public COSDictionary getCOSDictionary()
      This will get the underlying dictionary.
      Returns:
      The dictionary for these resources.
    • getCOSObject

      public COSBase getCOSObject()
      Convert this standard java object to a COS object.
      Specified by:
      getCOSObject in interface COSObjectable
      Returns:
      The cos object that matches this Java object.
    • clear

      public void clear()
      Calling this will release all cached information.
    • getFonts

      public Map<String,PDFont> getFonts(Map<String,PDFont> fontCache) throws IOException
      Deprecated.
      due to some side effects font caching is no longer supported, use getFonts() instead
      This will get the map of fonts. This will never return null. The keys are string and the values are PDFont objects.
      Parameters:
      fontCache - A map of existing PDFont objects to reuse.
      Returns:
      The map of fonts.
      Throws:
      IOException - If there is an error getting the fonts.
    • getFonts

      public Map<String,PDFont> getFonts()
      This will get the map of fonts. This will never return null.
      Returns:
      The map of fonts.
    • getXObjects

      public Map<String,PDXObject> getXObjects()
      This will get the map of PDXObjects that are in the resource dictionary. This will never return null.
      Returns:
      The map of xobjects.
    • getImages

      public Map<String,PDXObjectImage> getImages() throws IOException
      Deprecated.
      use getXObjects() instead, as the images map isn't synchronized with the XObjects map.
      This will get the map of images. An empty map will be returned if there are no underlying images. So far the keys are COSName of the image and the value is the corresponding PDXObjectImage.
      Returns:
      The map of images.
      Throws:
      IOException - If there is an error writing the picture.
    • setFonts

      public void setFonts(Map<String,PDFont> fontsValue)
      This will set the map of fonts.
      Parameters:
      fontsValue - The new map of fonts.
    • setXObjects

      public void setXObjects(Map<String,PDXObject> xobjectsValue)
      This will set the map of xobjects.
      Parameters:
      xobjectsValue - The new map of xobjects.
    • getColorSpaces

      public Map<String,PDColorSpace> getColorSpaces()
      This will get the map of colorspaces. This will return null if the underlying resources dictionary does not have a colorspace dictionary. The keys are string and the values are PDColorSpace objects.
      Returns:
      The map of colorspaces.
    • setColorSpaces

      public void setColorSpaces(Map<String,PDColorSpace> csValue)
      This will set the map of colorspaces.
      Parameters:
      csValue - The new map of colorspaces.
    • getGraphicsStates

      public Map<String,PDExtendedGraphicsState> getGraphicsStates()
      This will get the map of graphic states. This will return null if the underlying resources dictionary does not have a graphics dictionary. The keys are the graphic state name as a String and the values are PDExtendedGraphicsState objects.
      Returns:
      The map of extended graphic state objects.
    • setGraphicsStates

      public void setGraphicsStates(Map<String,PDExtendedGraphicsState> states)
      This will set the map of graphics states.
      Parameters:
      states - The new map of states.
    • getProperties

      public PDPropertyList getProperties()
      Returns the dictionary mapping resource names to property list dictionaries for marked content.
      Returns:
      the property list
    • setProperties

      public void setProperties(PDPropertyList props)
      Sets the dictionary mapping resource names to property list dictionaries for marked content.
      Parameters:
      props - the property list
    • getPatterns

      public Map<String,PDPatternResources> getPatterns() throws IOException
      This will get the map of patterns. This will return null if the underlying resources dictionary does not have a patterns dictionary. The keys are the pattern name as a String and the values are PDPatternResources objects.
      Returns:
      The map of pattern resources objects.
      Throws:
      IOException - If there is an error getting the pattern resources.
    • setPatterns

      public void setPatterns(Map<String,PDPatternResources> patternsValue)
      This will set the map of patterns.
      Parameters:
      patternsValue - The new map of patterns.
    • getShadings

      public Map<String,PDShadingResources> getShadings() throws IOException
      This will get the map of shadings. This will return null if the underlying resources dictionary does not have a shading dictionary. The keys are the shading name as a String and the values are PDShadingResources objects.
      Returns:
      The map of shading resources objects.
      Throws:
      IOException - If there is an error getting the shading resources.
    • setShadings

      public void setShadings(Map<String,PDShadingResources> shadingsValue)
      This will set the map of shadings.
      Parameters:
      shadingsValue - The new map of shadings.
    • addFont

      public String addFont(PDFont font)
      Adds the given font to the resources of the current page.
      Parameters:
      font - the font to be added
      Returns:
      the font name to be used within the content stream.
    • addFont

      public String addFont(PDFont font, String fontKey)
      Adds the given font to the resources of the current page using the given font key.
      Parameters:
      font - the font to be added
      fontKey - key to used to map to the given font
      Returns:
      the font name to be used within the content stream.
    • addXObject

      public String addXObject(PDXObject xobject, String prefix)
      Adds the given XObject to the resources of the current the page.
      Parameters:
      xobject - the XObject to be added
      prefix - the prefix to be used for the name
      Returns:
      the XObject name to be used within the content stream.