org.apache.fop.pdf

## Class PDFResources

- java.lang.Object
- - org.apache.fop.pdf.PDFObject
  - - org.apache.fop.pdf.PDFDictionary
    - - org.apache.fop.pdf.PDFResources

All Implemented Interfaces:
  PDFWritable

    public class PDFResources
    extends PDFDictionary

Class representing a /Resources object. /Resources object contain a list of references to the fonts, patterns, shadings, etc., for the document.

### Field Summary

Fields
`protected Map<org.apache.fop.pdf.PDFResources.LazyName,PDFColorSpace>` `colorSpaces` Map of color spaces (key: color space name)
`protected Set<PDFResourceContext>` `contexts`
`protected Map<String,PDFDictionary>` `fonts` /Font objects keyed by their internal name
`protected Map<String,PDFICCBasedColorSpace>` `iccColorSpaces` Map of ICC color spaces (key: ICC profile description)
`protected Map<String,PDFReference>` `properties` Named properties
`protected Set<PDFXObject>` `xObjects` Set of XObjects

### Fields inherited from class org.apache.fop.pdf.PDFDictionary

`entries, order`

### Fields inherited from class org.apache.fop.pdf.PDFObject

`log`

### Constructor Summary

Constructors
Constructor and Description
`PDFResources(PDFDocument doc)` create a /Resources object.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addColorSpace(PDFColorSpace colorSpace)` Add a ColorSpace dictionary to the resources.
`void` `addContext(PDFResourceContext c)`
`void` `addFont(PDFFont font)` add font object to resources list.
`void` `addFont(String name, PDFDictionary font)`
`void` `addFonts(PDFDocument doc, FontInfo fontInfo)` Add the fonts in the font info to this PDF document's Font Resources.
`void` `addProperty(String name, PDFReference property)` Add a named property.
`void` `addXObject(PDFXObject xObject)` Add an XObject to the resources.
`void` `createFontsAsObj()`
`void` `getChildren(Set<PDFObject> children)`
`PDFColorSpace` `getColorSpace(PDFName name)` Returns a color space by name.
`PDFICCBasedColorSpace` `getICCColorSpaceByProfileName(String desc)` Returns a ICCBased color space by profile name.
`PDFResources` `getParentResources()`
`PDFReference` `getProperty(String name)` Get a named property.
`int` `output(OutputStream stream)` Write the PDF represention of this object
`void` `setParentResources(PDFResources p)`

### Methods inherited from class org.apache.fop.pdf.PDFDictionary

`containsKey, get, getChildren, keySet, put, put, remove, writeDictionary`

### Methods inherited from class org.apache.fop.pdf.PDFObject

`contentEquals, encode, encodeBinaryToHexString, encodeString, encodeText, formatObject, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, outputInline, referencePDF, setDocument, setObjectNumber, setObjectNumber, setObjectNumber, setParent, supportsObjectStream, toPDF, toPDFString`

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

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

### Field Detail

#### fonts

    protected Map<String,PDFDictionary> fonts

/Font objects keyed by their internal name

#### xObjects

    protected Set<PDFXObject> xObjects

Set of XObjects

#### colorSpaces

    protected Map<org.apache.fop.pdf.PDFResources.LazyName,PDFColorSpace> colorSpaces

Map of color spaces (key: color space name)

#### iccColorSpaces

    protected Map<String,PDFICCBasedColorSpace> iccColorSpaces

Map of ICC color spaces (key: ICC profile description)

#### properties

    protected Map<String,PDFReference> properties

Named properties

#### contexts

    protected Set<PDFResourceContext> contexts

### Constructor Detail

#### PDFResources

    public PDFResources(PDFDocument doc)

create a /Resources object.

### Method Detail

#### addContext

    public void addContext(PDFResourceContext c)

#### setParentResources

    public void setParentResources(PDFResources p)

#### getParentResources

    public PDFResources getParentResources()

#### addFont

    public void addFont(PDFFont font)

add font object to resources list.

Parameters:
  `font` - the PDFFont to add

#### addFont

    public void addFont(String name,
                        PDFDictionary font)

#### createFontsAsObj

    public void createFontsAsObj()

#### addFonts

    public void addFonts(PDFDocument doc,
                         FontInfo fontInfo)

Add the fonts in the font info to this PDF document's Font Resources.

Parameters:
  `doc` - PDF document to add fonts to
  `fontInfo` - font info object to get font information from

#### addXObject

    public void addXObject(PDFXObject xObject)

Add an XObject to the resources.

Parameters:
  `xObject` - the XObject to add

#### addColorSpace

    public void addColorSpace(PDFColorSpace colorSpace)

Add a ColorSpace dictionary to the resources.

Parameters:
  `colorSpace` - the color space

#### getICCColorSpaceByProfileName

    public PDFICCBasedColorSpace getICCColorSpaceByProfileName(String desc)

Returns a ICCBased color space by profile name.

Parameters:
  `desc` - the name of the color space
Returns:
  the requested color space or null if it wasn't found

#### getColorSpace

    public PDFColorSpace getColorSpace(PDFName name)

Returns a color space by name.

Parameters:
  `name` - the name of the color space
Returns:
  the requested color space or null if it wasn't found

#### addProperty

    public void addProperty(String name,
                            PDFReference property)

Add a named property.

Parameters:
  `name` - name of property
  `property` - reference to property value

#### getProperty

    public PDFReference getProperty(String name)

Get a named property.

Parameters:
  `name` - name of property

#### output

    public int output(OutputStream stream)
               throws IOException

Description copied from class: `PDFDictionary`
Write the PDF represention of this object

Overrides:
  `output` in class `PDFDictionary`
Parameters:
  `stream` - the stream to write the PDF to
Returns:
  the number of bytes written
Throws:
  `IOException` - if there is an error writing to the stream

#### getChildren

    public void getChildren(Set<PDFObject> children)

Overrides:
  `getChildren` in class `PDFDictionary`