com.lowagie.text.rtf.document
Class RtfDocument

java.lang.Object
  extended by com.lowagie.text.rtf.RtfElement
      extended by com.lowagie.text.rtf.document.RtfDocument
All Implemented Interfaces:
RtfBasicElement, RtfElementInterface

public class RtfDocument
extends RtfElement

The RtfDocument stores all document related data and also the main data stream. INTERNAL CLASS - NOT TO BE USED DIRECTLY

Since:
1.x
Version:
$Id: RtfDocument.java 4065 2009-09-16 23:09:11Z psoares33 $
Author:
Mark Hall (Mark.Hall@mail.room3b.eu), Todd Bush [Tab support], Thomas Bickel (tmb99@inode.at)

Field Summary
private  boolean autogenerateTOCEntries
          Whether to automatically generate TOC entries for Chapters and Sections.
private  RtfDataCache data
          Stores the actual document data
private  RtfDocumentHeader documentHeader
          The RtfDocumentHeader that handles all document header methods
private  RtfDocumentSettings documentSettings
          The RtfDocumentSettings for this RtfDocument.
private static byte[] FSC_BACKSLASH
           
private static byte[] FSC_HEX_PREFIX
           
private static byte[] FSC_LINE
           
private static byte[] FSC_NEWPAGE
           
private static byte[] FSC_PAGE_PAR
           
private static byte[] FSC_PAR
           
private static byte[] FSC_TAB
           
private static byte[] FSC_UNI_PREFIX
           
private  RtfBasicElement lastElementWritten
          The last RtfBasicElement that was added directly to the RtfDocument.
private  RtfMapper mapper
          The RtfMapper to use in this RtfDocument
private  ArrayList previousRandomInts
          Stores integers that have been generated as unique random numbers
private static byte[] RTF_DOCUMENT
          Constant for the Rtf document start
 
Fields inherited from class com.lowagie.text.rtf.RtfElement
document, inHeader, inTable
 
Fields inherited from interface com.lowagie.text.rtf.RtfBasicElement
CLOSE_GROUP, COMMA_DELIMITER, DELIMITER, OPEN_GROUP, TWIPS_FACTOR
 
Constructor Summary
RtfDocument()
          The default constructor for a RtfDocument
 
Method Summary
 void add(RtfBasicElement element)
          Adds an element to the rtf document
 void filterSpecialChar(OutputStream out, String str, boolean useHex, boolean softLineBreaks)
          Writes the given string to the given OutputStream encoding the string characters.
 boolean getAutogenerateTOCEntries()
          Get whether to automatically generate table of contents entries
 RtfDocumentHeader getDocumentHeader()
          Gets the RtfDocumentHeader of this RtfDocument
 RtfDocumentSettings getDocumentSettings()
          Gets the RtfDocumentSettings that specify how the rtf document is generated.
 RtfBasicElement getLastElementWritten()
          Gets the last RtfBasicElement that was directly added to the RtfDocument.
 RtfMapper getMapper()
          Gets the RtfMapper object of this RtfDocument
 int getRandomInt()
          Generates a random integer that is unique with respect to the document.
 void open()
          Opens the RtfDocument and initializes the data cache.
 void outputDebugLinebreak(OutputStream result)
          Helper method outputs linebreak in document if debugging is turned on.
 void setAutogenerateTOCEntries(boolean autogenerate)
          Whether to automagically generate table of contents entries when adding Chapters or Sections.
private static boolean subMatch(String str, int soff, byte[] m)
          Returns true if m.length characters in str, starting at offset soff match the bytes in the given array m.
 void writeContent(OutputStream out)
          unused
 void writeDocument(OutputStream out)
          Writes the document
 
Methods inherited from class com.lowagie.text.rtf.RtfElement
intToByteArray, isInTable, setInHeader, setInTable, setRtfDocument
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

private RtfDataCache data
Stores the actual document data


mapper

private RtfMapper mapper
The RtfMapper to use in this RtfDocument


documentHeader

private RtfDocumentHeader documentHeader
The RtfDocumentHeader that handles all document header methods


previousRandomInts

private ArrayList previousRandomInts
Stores integers that have been generated as unique random numbers


autogenerateTOCEntries

private boolean autogenerateTOCEntries
Whether to automatically generate TOC entries for Chapters and Sections. Defaults to false


documentSettings

private RtfDocumentSettings documentSettings
The RtfDocumentSettings for this RtfDocument.


lastElementWritten

private RtfBasicElement lastElementWritten
The last RtfBasicElement that was added directly to the RtfDocument.


RTF_DOCUMENT

private static final byte[] RTF_DOCUMENT
Constant for the Rtf document start


FSC_LINE

private static final byte[] FSC_LINE

FSC_PAR

private static final byte[] FSC_PAR

FSC_TAB

private static final byte[] FSC_TAB

FSC_PAGE_PAR

private static final byte[] FSC_PAGE_PAR

FSC_NEWPAGE

private static final byte[] FSC_NEWPAGE

FSC_BACKSLASH

private static final byte[] FSC_BACKSLASH

FSC_HEX_PREFIX

private static final byte[] FSC_HEX_PREFIX

FSC_UNI_PREFIX

private static final byte[] FSC_UNI_PREFIX
Constructor Detail

RtfDocument

public RtfDocument()
The default constructor for a RtfDocument

Method Detail

writeContent

public void writeContent(OutputStream out)
                  throws IOException
unused

Specified by:
writeContent in interface RtfBasicElement
Specified by:
writeContent in class RtfElement
Parameters:
out - The OutputStream to write the content to
Throws:
IOException

writeDocument

public void writeDocument(OutputStream out)
Writes the document

Parameters:
out - The OutputStream to write the RTF document to.

open

public void open()
Opens the RtfDocument and initializes the data cache. If the data cache is set to CACHE_DISK, but the cache cannot be initialized then the memory cache is used.


add

public void add(RtfBasicElement element)
Adds an element to the rtf document

Parameters:
element - The element to add

getMapper

public RtfMapper getMapper()
Gets the RtfMapper object of this RtfDocument

Returns:
The RtfMapper

getRandomInt

public int getRandomInt()
Generates a random integer that is unique with respect to the document. Will not return a number between -1 and -5 because some values in that range are invalid.

Returns:
A random int

getDocumentHeader

public RtfDocumentHeader getDocumentHeader()
Gets the RtfDocumentHeader of this RtfDocument

Returns:
The RtfDocumentHeader of this RtfDocument

filterSpecialChar

public void filterSpecialChar(OutputStream out,
                              String str,
                              boolean useHex,
                              boolean softLineBreaks)
                       throws IOException
Writes the given string to the given OutputStream encoding the string characters.

Parameters:
out - destination OutputStream
str - string to write
useHex - if true hex encoding characters is preferred to unicode encoding if possible
softLineBreaks - if true return characters are written as soft line breaks
Throws:
IOException

subMatch

private static boolean subMatch(String str,
                                int soff,
                                byte[] m)
Returns true if m.length characters in str, starting at offset soff match the bytes in the given array m.

Parameters:
str - the string to search for a match
soff - the starting offset in str
m - the array to match
Returns:
true if there is match

setAutogenerateTOCEntries

public void setAutogenerateTOCEntries(boolean autogenerate)
Whether to automagically generate table of contents entries when adding Chapters or Sections.

Parameters:
autogenerate - Whether to automatically generate TOC entries

getAutogenerateTOCEntries

public boolean getAutogenerateTOCEntries()
Get whether to automatically generate table of contents entries

Returns:
Whether to automatically generate TOC entries

getDocumentSettings

public RtfDocumentSettings getDocumentSettings()
Gets the RtfDocumentSettings that specify how the rtf document is generated.

Returns:
The current RtfDocumentSettings.

getLastElementWritten

public RtfBasicElement getLastElementWritten()
Gets the last RtfBasicElement that was directly added to the RtfDocument.

Returns:
The last RtfBasicElement that was directly added to the RtfDocument.

outputDebugLinebreak

public final void outputDebugLinebreak(OutputStream result)
                                throws IOException
Helper method outputs linebreak in document if debugging is turned on.

Parameters:
result - the OutputStream to write the linebreak to.
Throws:
IOException
Since:
2.1.3

Hosted by Hostbasket