Class HWPFDocument

All Implemented Interfaces:
Closeable, AutoCloseable

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

    • HWPFDocument

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

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

      public HWPFDocument(DirectoryNode directory) throws 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:
      IOException - If there is an unexpected IOException from the passed in POIFSFileSystem.
  • Method Details

    • getTextTable

      @Internal public TextPieceTable getTextTable()
      Specified by:
      getTextTable in class HWPFDocumentCore
    • getText

      @Internal public StringBuilder getText()
      Description copied from class: HWPFDocumentCore
      Internal method to access document text
      Specified by:
      getText in class HWPFDocumentCore
    • getDocProperties

      public DocumentProperties getDocProperties()
    • 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
    • getEscherRecordHolder

      @Internal public EscherRecordHolder getEscherRecordHolder()
    • 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 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:
      IOException - thrown on errors writing to the file
      Since:
      3.15
    • write

      public void write(File newFile) throws 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:
      IOException - If there is an unexpected IOException from writing to the File.
      Since:
      3.15 beta 3
    • write

      public void write(OutputStream out) throws 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:
      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)