Class HWPFDocument

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public final class HWPFDocument
    extends HWPFDocumentCore
    This class acts as the bucket that we throw all of the Word data structures into.
    • Constructor Detail

      • HWPFDocument

        public HWPFDocument​(java.io.InputStream istream)
                     throws java.io.IOException
        This constructor loads a Word document from an InputStream.
        Parameters:
        istream - The InputStream that contains the Word document.
        Throws:
        java.io.IOException - If there is an unexpected IOException from the passed in InputStream.
      • HWPFDocument

        public HWPFDocument​(POIFSFileSystem pfilesystem)
                     throws java.io.IOException
        This constructor loads a Word document from a POIFSFileSystem
        Parameters:
        pfilesystem - The POIFSFileSystem that contains the Word document.
        Throws:
        java.io.IOException - If there is an unexpected IOException from the passed in POIFSFileSystem.
      • HWPFDocument

        public HWPFDocument​(DirectoryNode directory)
                     throws java.io.IOException
        This constructor loads a Word document from a specific point in a POIFSFileSystem, probably not the default. Used typically to open embeded documents.
        Parameters:
        directory - The DirectoryNode that contains the Word document.
        Throws:
        java.io.IOException - If there is an unexpected IOException from the passed in POIFSFileSystem.
    • Method Detail

      • getOverallRange

        public Range getOverallRange()
        Description copied from class: HWPFDocumentCore
        Returns the range that covers all text in the file, including main text, footnotes, headers and comments
        Specified by:
        getOverallRange in class HWPFDocumentCore
      • getRange

        public Range getRange()
        Returns the range which covers the whole of the document, but excludes any headers and footers.
        Specified by:
        getRange in class HWPFDocumentCore
      • getFootnoteRange

        public Range getFootnoteRange()
        Returns the Range which covers all the Footnotes.
        Returns:
        the Range which covers all the Footnotes.
      • getEndnoteRange

        public Range getEndnoteRange()
        Returns the Range which covers all endnotes.
        Returns:
        the Range which covers all endnotes.
      • getCommentsRange

        public Range getCommentsRange()
        Returns the Range which covers all annotations.
        Returns:
        the Range which covers all annotations.
      • getMainTextboxRange

        public Range getMainTextboxRange()
        Returns the Range which covers all textboxes.
        Returns:
        the Range which covers all textboxes.
      • getHeaderStoryRange

        public Range getHeaderStoryRange()
        Returns the range which covers all "Header Stories". A header story contains a header, footer, end note separators and footnote separators.
      • characterLength

        public int characterLength()
        Returns the character length of a document.
        Returns:
        the character length of a document
      • getSavedByTable

        @Internal
        public SavedByTable getSavedByTable()
        Gets a reference to the saved -by table, which holds the save history for the document.
        Returns:
        the saved-by table.
      • getRevisionMarkAuthorTable

        @Internal
        public RevisionMarkAuthorTable getRevisionMarkAuthorTable()
        Gets a reference to the revision mark author table, which holds the revision mark authors for the document.
        Returns:
        the saved-by table.
      • getPicturesTable

        public PicturesTable getPicturesTable()
        Returns:
        PicturesTable object, that is able to extract images from this document
      • getOfficeDrawingsHeaders

        public OfficeDrawings getOfficeDrawingsHeaders()
      • getOfficeDrawingsMain

        public OfficeDrawings getOfficeDrawingsMain()
      • getBookmarks

        public Bookmarks getBookmarks()
        Returns:
        user-friendly interface to access document bookmarks
      • getEndnotes

        public Notes getEndnotes()
        Returns:
        user-friendly interface to access document endnotes
      • getFootnotes

        public Notes getFootnotes()
        Returns:
        user-friendly interface to access document footnotes
      • getFieldsTables

        @Deprecated
        @Internal
        public FieldsTables getFieldsTables()
        Deprecated.
        POI 3.8.
        Returns:
        FieldsTables object, that is able to extract fields descriptors from this document
      • getFields

        public Fields getFields()
        Returns user-friendly interface to access document Fields
        Returns:
        user-friendly interface to access document Fields
      • write

        public void write()
                   throws java.io.IOException
        Write out the word file that is represented by this class, to the currently open File, via the writeable POIFSFileSystem it was opened as.

        This will fail (with an IllegalStateException if the Document was opened read-only, opened from an InputStream instead of a File, or if this is not the root document. For those cases, you must use write(OutputStream) or write(File) to write to a brand new document.

        Specified by:
        write in class POIDocument
        Throws:
        java.io.IOException - thrown on errors writing to the file
        Since:
        3.15
      • write

        public void write​(java.io.File newFile)
                   throws java.io.IOException
        Writes out the word file that is represented by an instance of this class. If the File exists, it will be replaced, otherwise a new one will be created
        Specified by:
        write in class POIDocument
        Parameters:
        newFile - The File to write to.
        Throws:
        java.io.IOException - If there is an unexpected IOException from writing to the File.
        Since:
        3.15 beta 3
      • write

        public void write​(java.io.OutputStream out)
                   throws java.io.IOException
        Writes out the word file that is represented by an instance of this class. For better performance when writing to files, use write(File). If stream has a high cost/latency associated with each written byte, consider wrapping the OutputStream in a BufferedOutputStream to improve write performance.
        Specified by:
        write in class POIDocument
        Parameters:
        out - The OutputStream to write to.
        Throws:
        java.io.IOException - If there is an unexpected IOException from the passed in OutputStream.
      • getDataStream

        @Internal
        public byte[] getDataStream()
      • getTableStream

        @Internal
        public byte[] getTableStream()
      • registerList

        public int registerList​(HWPFList list)
      • delete

        public void delete​(int start,
                           int length)