org.apache.fop.render.rtf.rtflib.rtfdoc

## Class RtfFile

- java.lang.Object
- - org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement
  - - org.apache.fop.render.rtf.rtflib.rtfdoc.RtfContainer
    - - org.apache.fop.render.rtf.rtflib.rtfdoc.RtfFile

    public class RtfFile
    extends RtfContainer

Models the top-level structure of an RTF file.

This work was authored by Bertrand Delacretaz (bdelacretaz@codeconsult.ch), Andreas Putz (a.putz@skynamics.com), and Christopher Scott (scottc@westinghouse.com).

### Field Summary

### Fields inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement

`attrib, parent, writer`

### Constructor Summary

Constructors
Constructor and Description
`RtfFile(Writer w)` Create an RTF file that outputs to the given Writer

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `flush()` must be called when done creating the document
`RtfDocumentArea` `getDocumentArea()` Call startDocumentArea if needed and return the document area object.
`RtfListTable` `getListTable()` Get the list table.
`RtfPageArea` `getPageArea()` Call startPageArea if needed and return the page area object.
`static void` `main(String[] args)` minimal test and usage example
`RtfDocumentArea` `startDocumentArea()` Closes the RtfHeader if not done yet, and starts the document area.
`org.apache.fop.render.rtf.rtflib.rtfdoc.RtfHeader` `startHeader()` If called, must be called before startDocumentArea
`RtfListTable` `startListTable(RtfAttributes attr)` Creates the list table.
`RtfPageArea` `startPageArea()` Closes the RtfHeader if not done yet, and starts the docment area.
`protected void` `writeRtfPrefix()` overridden to write RTF prefix code, what comes before our children
`protected void` `writeRtfSuffix()` overridden to write RTF suffix code, what comes after our children

### Methods inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfContainer

`addChild, findChildren, getChildCount, getChildren, isEmpty, okToWriteRtf, setChildren, setOptions, toString, writeRtfContent`

### Methods inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement

`close, getParentOfClass, getRtfAttributes, newLine, writeAttributes, writeControlWord, writeControlWordNS, writeExceptionInRtf, writeGroupMark, writeOneAttribute, writeOneAttributeNS, writeRtf, writeStarControlWord, writeStarControlWordNS`

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

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

### Constructor Detail

#### RtfFile

    public RtfFile(Writer w)
            throws IOException

Create an RTF file that outputs to the given Writer

Parameters:
  `w` - the Writer to write to
Throws:
  `IOException` - for I/O problems

### Method Detail

#### startHeader

    public org.apache.fop.render.rtf.rtflib.rtfdoc.RtfHeader startHeader()
                                                                  throws IOException,
                                                                         RtfStructureException

If called, must be called before startDocumentArea

Returns:
  the new RtfHeader
Throws:
  `IOException` - for I/O problems
  `RtfStructureException` - for illegal RTF structure

#### startListTable

    public RtfListTable startListTable(RtfAttributes attr)
                                throws IOException

Creates the list table.

Parameters:
  `attr` - attributes for the RtfListTable
Returns:
  the new RtfListTable
Throws:
  `IOException` - for I/O problems

#### getListTable

    public RtfListTable getListTable()

Get the list table.

Returns:
  the RtfListTable

#### startPageArea

    public RtfPageArea startPageArea()
                              throws IOException,
                                     RtfStructureException

Closes the RtfHeader if not done yet, and starts the docment area. Like startDocumentArea, is only called once. This is not optimal, must be able to have multiple page definition, and corresponding Document areas

Returns:
  the RtfPageArea
Throws:
  `IOException` - for I/O problems
  `RtfStructureException` - for illegal RTF structure

#### getPageArea

    public RtfPageArea getPageArea()
                            throws IOException,
                                   RtfStructureException

Call startPageArea if needed and return the page area object.

Returns:
  the RtfPageArea
Throws:
  `IOException` - for I/O problems
  `RtfStructureException` - for illegal RTF structure

#### startDocumentArea

    public RtfDocumentArea startDocumentArea()
                                      throws IOException,
                                             RtfStructureException

Closes the RtfHeader if not done yet, and starts the document area. Must be called once only.

Returns:
  the RtfDocumentArea
Throws:
  `IOException` - for I/O problems
  `RtfStructureException` - for illegal RTF structure

#### getDocumentArea

    public RtfDocumentArea getDocumentArea()
                                    throws IOException,
                                           RtfStructureException

Call startDocumentArea if needed and return the document area object.

Returns:
  the RtfDocumentArea
Throws:
  `IOException` - for I/O problems
  `RtfStructureException` - for illegal RTF structure

#### writeRtfPrefix

    protected void writeRtfPrefix()
                           throws IOException

overridden to write RTF prefix code, what comes before our children

Overrides:
  `writeRtfPrefix` in class `RtfElement`
Throws:
  `IOException` - for I/O problems

#### writeRtfSuffix

    protected void writeRtfSuffix()
                           throws IOException

overridden to write RTF suffix code, what comes after our children

Overrides:
  `writeRtfSuffix` in class `RtfElement`
Throws:
  `IOException` - for I/O problems

#### flush

    public void flush()
               throws IOException

must be called when done creating the document

Throws:
  `IOException` - for I/O problems

#### main

    public static void main(String[] args)
                     throws Exception

minimal test and usage example

Parameters:
  `args` - command-line arguments
Throws:
  `Exception` - for problems