org.apache.pdfbox.pdmodel.fdf

## Class FDFDocument

- java.lang.Object
- - org.apache.pdfbox.pdmodel.fdf.FDFDocument

All Implemented Interfaces:
  Closeable, AutoCloseable

    public class FDFDocument
    extends Object
    implements Closeable

This is the in-memory representation of the FDF document. You need to call close() on this object when you are done using it!!

Author:
  Ben Litchfield

### Constructor Summary

Constructors
Constructor and Description
`FDFDocument()` Constructor, creates a new FDF document.
`FDFDocument(COSDocument doc)` Constructor that uses an existing document.
`FDFDocument(Document doc)` This will create an FDF document from an XFDF XML document.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `close()` This will close the underlying COSDocument object.
`FDFCatalog` `getCatalog()` This will get the FDF Catalog.
`COSDocument` `getDocument()` This will get the low level document.
`static FDFDocument` `load(File file)` This will load a document from a file.
`static FDFDocument` `load(InputStream input)` This will load a document from an input stream.
`static FDFDocument` `load(String filename)` This will load a document from a file.
`static FDFDocument` `loadXFDF(File file)` This will load a document from a file.
`static FDFDocument` `loadXFDF(InputStream input)` This will load a document from an input stream.
`static FDFDocument` `loadXFDF(String filename)` This will load a document from a file.
`void` `save(File fileName)` This will save this document to the filesystem.
`void` `save(OutputStream output)` This will save the document to an output stream.
`void` `save(String fileName)` This will save this document to the filesystem.
`void` `saveXFDF(File fileName)` This will save this document to the filesystem.
`void` `saveXFDF(String fileName)` This will save this document to the filesystem.
`void` `saveXFDF(Writer output)` This will save the document to an output stream and close the stream.
`void` `setCatalog(FDFCatalog cat)` This will set the FDF catalog for this FDF document.
`void` `writeXML(Writer output)` This will write this element as an XML document.

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

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

### Constructor Detail

#### FDFDocument

    public FDFDocument()

Constructor, creates a new FDF document.

#### FDFDocument

    public FDFDocument(COSDocument doc)

Constructor that uses an existing document. The COSDocument that is passed in must be valid.

Parameters:
  `doc` - The COSDocument that this document wraps.

#### FDFDocument

    public FDFDocument(Document doc)
                throws IOException

This will create an FDF document from an XFDF XML document.

Parameters:
  `doc` - The XML document that contains the XFDF data.
Throws:
  `IOException` - If there is an error reading from the dom.

### Method Detail

#### writeXML

    public void writeXML(Writer output)
                  throws IOException

This will write this element as an XML document.

Parameters:
  `output` - The stream to write the xml to.
Throws:
  `IOException` - If there is an error writing the XML.

#### getDocument

    public COSDocument getDocument()

This will get the low level document.

Returns:
  The document that this layer sits on top of.

#### getCatalog

    public FDFCatalog getCatalog()

This will get the FDF Catalog. This is guaranteed to not return null.

Returns:
  The documents /Root dictionary

#### setCatalog

    public void setCatalog(FDFCatalog cat)

This will set the FDF catalog for this FDF document.

Parameters:
  `cat` - The FDF catalog.

#### load

    public static FDFDocument load(String filename)
                            throws IOException

This will load a document from a file.

Parameters:
  `filename` - The name of the file to load.
Returns:
  The document that was loaded.
Throws:
  `IOException` - If there is an error reading from the stream.

#### load

    public static FDFDocument load(File file)
                            throws IOException

This will load a document from a file.

Parameters:
  `file` - The name of the file to load.
Returns:
  The document that was loaded.
Throws:
  `IOException` - If there is an error reading from the stream.

#### load

    public static FDFDocument load(InputStream input)
                            throws IOException

This will load a document from an input stream.

Parameters:
  `input` - The stream that contains the document.
Returns:
  The document that was loaded.
Throws:
  `IOException` - If there is an error reading from the stream.

#### loadXFDF

    public static FDFDocument loadXFDF(String filename)
                                throws IOException

This will load a document from a file.

Parameters:
  `filename` - The name of the file to load.
Returns:
  The document that was loaded.
Throws:
  `IOException` - If there is an error reading from the stream.

#### loadXFDF

    public static FDFDocument loadXFDF(File file)
                                throws IOException

This will load a document from a file.

Parameters:
  `file` - The name of the file to load.
Returns:
  The document that was loaded.
Throws:
  `IOException` - If there is an error reading from the stream.

#### loadXFDF

    public static FDFDocument loadXFDF(InputStream input)
                                throws IOException

This will load a document from an input stream.

Parameters:
  `input` - The stream that contains the document.
Returns:
  The document that was loaded.
Throws:
  `IOException` - If there is an error reading from the stream.

#### save

    public void save(File fileName)
              throws IOException

This will save this document to the filesystem.

Parameters:
  `fileName` - The file to save as.
Throws:
  `IOException` - If there is an error saving the document.

#### save

    public void save(String fileName)
              throws IOException

This will save this document to the filesystem.

Parameters:
  `fileName` - The file to save as.
Throws:
  `IOException` - If there is an error saving the document.

#### save

    public void save(OutputStream output)
              throws IOException

This will save the document to an output stream.

Parameters:
  `output` - The stream to write to.
Throws:
  `IOException` - If there is an error writing the document.

#### saveXFDF

    public void saveXFDF(File fileName)
                  throws IOException

This will save this document to the filesystem.

Parameters:
  `fileName` - The file to save as.
Throws:
  `IOException` - If there is an error saving the document.

#### saveXFDF

    public void saveXFDF(String fileName)
                  throws IOException

This will save this document to the filesystem.

Parameters:
  `fileName` - The file to save as.
Throws:
  `IOException` - If there is an error saving the document.

#### saveXFDF

    public void saveXFDF(Writer output)
                  throws IOException

This will save the document to an output stream and close the stream.

Parameters:
  `output` - The stream to write to.
Throws:
  `IOException` - If there is an error writing the document.

#### close

    public void close()
               throws IOException

This will close the underlying COSDocument object.

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Throws:
  `IOException` - If there is an error releasing resources.