Class RtfDocument

  • All Implemented Interfaces:
    RtfBasicElement, com.lowagie.text.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 $
    • Field Detail

      • data

        private RtfDataCache data
        Stores the actual document data
      • mapper

        private final RtfMapper mapper
        The RtfMapper to use in this RtfDocument
      • documentHeader

        private final RtfDocumentHeader documentHeader
        The RtfDocumentHeader that handles all document header methods
      • previousRandomInts

        private final java.util.List<java.lang.Integer> 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 final 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​(java.io.OutputStream out)
                          throws java.io.IOException
        unused
        Specified by:
        writeContent in interface RtfBasicElement
        Specified by:
        writeContent in class RtfElement
        Parameters:
        out - The OutputStream to write the content to
        Throws:
        java.io.IOException
      • writeDocument

        public void writeDocument​(java.io.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​(java.io.OutputStream out,
                                      java.lang.String str,
                                      boolean useHex,
                                      boolean softLineBreaks)
                               throws java.io.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:
        java.io.IOException
      • subMatch

        private static boolean subMatch​(java.lang.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​(java.io.OutputStream result)
                                        throws java.io.IOException
        Helper method outputs linebreak in document if debugging is turned on.
        Parameters:
        result - the OutputStream to write the linebreak to.
        Throws:
        java.io.IOException
        Since:
        2.1.3