org.apache.poi.xwpf.usermodel

## Class XWPFHeaderFooter

- java.lang.Object
- - org.apache.poi.ooxml.POIXMLDocumentPart
  - - org.apache.poi.xwpf.usermodel.XWPFHeaderFooter

- All Implemented Interfaces:
    IBody
  Direct Known Subclasses:
    XWPFFooter, XWPFHeader

      public abstract class XWPFHeaderFooter
      extends POIXMLDocumentPart
      implements IBody

  Parent of XWPF headers and footers

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.poi.ooxml.POIXMLDocumentPart

      `POIXMLDocumentPart.RelationPart`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `XWPFHeaderFooter()`
    `` | `XWPFHeaderFooter(POIXMLDocumentPart parent, PackagePart part)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHdrFtr` | `_getHdrFtr()`
    `java.lang.String` | `addPictureData(byte[] pictureData, int format)` Adds a picture to the document.
    `java.lang.String` | `addPictureData(java.io.InputStream is, int format)` Adds a picture to the document.
    `void` | `clearHeaderFooter()` Clears all paragraphs and tables from this header / footer
    `XWPFParagraph` | `createParagraph()` Adds a new paragraph at the end of the header or footer
    `XWPFTable` | `createTable(int rows, int cols)` Adds a new table at the end of the header or footer
    `java.util.List<XWPFPictureData>` | `getAllPackagePictures()` get all Pictures in this package
    `java.util.List<XWPFPictureData>` | `getAllPictures()`
    `java.util.List<IBodyElement>` | `getBodyElements()` Returns an Iterator with paragraphs and tables, in the order that they occur in the text.
    `java.util.List<XWPFParagraph>` | `getListParagraph()` get a List of all Paragraphs
    `POIXMLDocumentPart` | `getOwner()`
    `XWPFParagraph` | `getParagraph(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP p)` if there is a corresponding `XWPFParagraph` of the parameter ctTable in the paragraphList of this header or footer the method will return this paragraph if there is no corresponding `XWPFParagraph` the method will return null
    `XWPFParagraph` | `getParagraphArray(int pos)` Returns the paragraph that holds the text of the header or footer.
    `java.util.List<XWPFParagraph>` | `getParagraphs()` Returns the paragraph(s) that holds the text of the header or footer.
    `POIXMLDocumentPart` | `getPart()` returns the Part, to which the body belongs, which you need for adding relationship to other parts
    `XWPFPictureData` | `getPictureDataByID(java.lang.String blipID)` returns the PictureData by blipID
    `XWPFTable` | `getTable(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl ctTable)` if there is a corresponding `XWPFTable` of the parameter ctTable in the tableList of this header the method will return this table if there is no corresponding `XWPFTable` the method will return null
    `XWPFTable` | `getTableArray(int pos)` Returns the table at position pos
    `XWPFTableCell` | `getTableCell(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc cell)` get the TableCell which belongs to the TableCell
    `java.util.List<XWPFTable>` | `getTables()` Return the table(s) that holds the text of the header or footer, for complex cases where a paragraph isn't used.
    `java.lang.String` | `getText()` Returns the textual content of the header/footer, by flattening out the text of its paragraph(s)
    `XWPFDocument` | `getXWPFDocument()` Return XWPFDocument
    `XWPFParagraph` | `insertNewParagraph(org.apache.xmlbeans.XmlCursor cursor)` add a new paragraph at position of the cursor
    `XWPFTable` | `insertNewTbl(org.apache.xmlbeans.XmlCursor cursor)` inserts a new Table at the cursor position.
    `void` | `insertTable(int pos, XWPFTable table)` inserts an existing XWPFTable to the arrays bodyElements and tables
    `protected void` | `onDocumentRead()` Fired when a package part is read
    `protected void` | `prepareForCommit()` Ensure that a memory based package part does not have lingering data from previous commit() calls.
    `void` | `readHdrFtr()`
    `void` | `removeParagraph(XWPFParagraph paragraph)` Removes a specific paragraph from this header / footer
    `void` | `removeTable(XWPFTable table)` Removes a specific table from this header / footer
    `void` | `setHeaderFooter(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHdrFtr headerFooter)` set a new headerFooter
    `void` | `setXWPFDocument(XWPFDocument doc)`

    - ### Methods inherited from class org.apache.poi.ooxml.POIXMLDocumentPart

      `_invokeOnDocumentRead, addRelation, commit, createRelationship, createRelationship, createRelationship, getNextPartNumber, getPackagePart, getParent, getRelationById, getRelationId, getRelationPartById, getRelationParts, getRelations, getTargetPart, isCommited, isCommitted, onDocumentCreate, onDocumentRemove, onSave, read, rebase, removeRelation, removeRelation, removeRelation, setCommited, setCommitted, toString`

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

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

    - ### Methods inherited from interface org.apache.poi.xwpf.usermodel.IBody

      `getPartType`

- - ### Constructor Detail

    - #### XWPFHeaderFooter

          protected XWPFHeaderFooter()

    - #### XWPFHeaderFooter

          public XWPFHeaderFooter(POIXMLDocumentPart parent,
                                  PackagePart part)

      Since:
        by POI 3.14-Beta1

  - ### Method Detail

    - #### onDocumentRead

          protected void onDocumentRead()
                                 throws java.io.IOException

      Description copied from class: `POIXMLDocumentPart`
      Fired when a package part is read
      Overrides:
        `onDocumentRead` in class `POIXMLDocumentPart`
      Throws:
        `java.io.IOException` - a subclass may throw an IOException when a document is read

    - #### _getHdrFtr

          @Internal
          public org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHdrFtr _getHdrFtr()

    - #### getBodyElements

          public java.util.List<IBodyElement> getBodyElements()

      Description copied from interface: `IBody`
      Returns an Iterator with paragraphs and tables, in the order that they occur in the text.
      Specified by:
        `getBodyElements` in interface `IBody`

    - #### getParagraphs

          public java.util.List<XWPFParagraph> getParagraphs()

      Returns the paragraph(s) that holds the text of the header or footer. Normally there is only the one paragraph, but there could be more in certain cases, or a table.
      Specified by:
        `getParagraphs` in interface `IBody`

    - #### getTables

          public java.util.List<XWPFTable> getTables()
                                              throws java.lang.ArrayIndexOutOfBoundsException

      Return the table(s) that holds the text of the header or footer, for complex cases where a paragraph isn't used. Normally there's just one paragraph, but some complex headers/footers have a table or two in addition.
      Specified by:
        `getTables` in interface `IBody`
      Throws:
        `java.lang.ArrayIndexOutOfBoundsException`

    - #### getText

          public java.lang.String getText()

      Returns the textual content of the header/footer, by flattening out the text of its paragraph(s)

    - #### setHeaderFooter

          public void setHeaderFooter(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHdrFtr headerFooter)

      set a new headerFooter

    - #### getTable

          public XWPFTable getTable(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl ctTable)

      if there is a corresponding `XWPFTable` of the parameter ctTable in the tableList of this header the method will return this table if there is no corresponding `XWPFTable` the method will return null
      Specified by:
        `getTable` in interface `IBody`
      Parameters:
        `ctTable` -

    - #### getParagraph

          public XWPFParagraph getParagraph(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP p)

      if there is a corresponding `XWPFParagraph` of the parameter ctTable in the paragraphList of this header or footer the method will return this paragraph if there is no corresponding `XWPFParagraph` the method will return null
      Specified by:
        `getParagraph` in interface `IBody`
      Parameters:
        `p` - is instance of CTP and is searching for an XWPFParagraph
      Returns:
        null if there is no XWPFParagraph with an corresponding CTPparagraph in the paragraphList of this header or footer XWPFParagraph with the correspondig CTP p

    - #### getParagraphArray

          public XWPFParagraph getParagraphArray(int pos)

      Returns the paragraph that holds the text of the header or footer.
      Specified by:
        `getParagraphArray` in interface `IBody`

    - #### getListParagraph

          public java.util.List<XWPFParagraph> getListParagraph()

      get a List of all Paragraphs
      Returns:
        a list of `XWPFParagraph`

    - #### getAllPictures

          public java.util.List<XWPFPictureData> getAllPictures()

    - #### getAllPackagePictures

          public java.util.List<XWPFPictureData> getAllPackagePictures()

      get all Pictures in this package
      Returns:
        all Pictures in this package

    - #### addPictureData

          public java.lang.String addPictureData(byte[] pictureData,
                                                 int format)
                                          throws InvalidFormatException

      Adds a picture to the document.
      Parameters:
        `pictureData` - The picture data
        `format` - The format of the picture.
      Returns:
        the index to this picture (0 based), the added picture can be obtained from `getAllPictures()` .
      Throws:
        `InvalidFormatException` - If the format of the picture is not known.

    - #### addPictureData

          public java.lang.String addPictureData(java.io.InputStream is,
                                                 int format)
                                          throws InvalidFormatException,
                                                 java.io.IOException

      Adds a picture to the document.
      Parameters:
        `is` - The stream to read image from
        `format` - The format of the picture.
      Returns:
        the index to this picture (0 based), the added picture can be obtained from `getAllPictures()` .
      Throws:
        `InvalidFormatException` - If the format of the picture is not known.
        `java.io.IOException` - If reading the picture-data from the stream fails.

    - #### getPictureDataByID

          public XWPFPictureData getPictureDataByID(java.lang.String blipID)

      returns the PictureData by blipID
      Parameters:
        `blipID` -
      Returns:
        XWPFPictureData of a specificID
      Throws:
        `java.lang.Exception`

    - #### createParagraph

          public XWPFParagraph createParagraph()

      Adds a new paragraph at the end of the header or footer
      Returns:
        new `XWPFParagraph` object

    - #### createTable

          public XWPFTable createTable(int rows,
                                       int cols)

      Adds a new table at the end of the header or footer
      Parameters:
        `rows` - - number of rows in the table
        `cols` - - number of columns in the table
      Returns:
        new `XWPFTable` object

    - #### removeParagraph

          public void removeParagraph(XWPFParagraph paragraph)

      Removes a specific paragraph from this header / footer
      Parameters:
        `paragraph` - - `XWPFParagraph` object to remove

    - #### removeTable

          public void removeTable(XWPFTable table)

      Removes a specific table from this header / footer
      Parameters:
        `table` - - `XWPFTable` object to remove

    - #### clearHeaderFooter

          public void clearHeaderFooter()

      Clears all paragraphs and tables from this header / footer

    - #### insertNewParagraph

          public XWPFParagraph insertNewParagraph(org.apache.xmlbeans.XmlCursor cursor)

      add a new paragraph at position of the cursor
      Specified by:
        `insertNewParagraph` in interface `IBody`
      Parameters:
        `cursor` -
      Returns:
        the inserted paragraph

    - #### insertNewTbl

          public XWPFTable insertNewTbl(org.apache.xmlbeans.XmlCursor cursor)

      Description copied from interface: `IBody`
      inserts a new Table at the cursor position.
      Specified by:
        `insertNewTbl` in interface `IBody`
      Parameters:
        `cursor` -
      Returns:
        the inserted table

    - #### getOwner

          public POIXMLDocumentPart getOwner()

    - #### getTableArray

          public XWPFTable getTableArray(int pos)

      Returns the table at position pos
      Specified by:
        `getTableArray` in interface `IBody`
      See Also:
        `IBody.getTableArray(int)`

    - #### insertTable

          public void insertTable(int pos,
                                  XWPFTable table)

      inserts an existing XWPFTable to the arrays bodyElements and tables
      Specified by:
        `insertTable` in interface `IBody`
      Parameters:
        `pos` -
        `table` -

    - #### readHdrFtr

          public void readHdrFtr()

    - #### getTableCell

          public XWPFTableCell getTableCell(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc cell)

      get the TableCell which belongs to the TableCell
      Specified by:
        `getTableCell` in interface `IBody`
      Parameters:
        `cell` -

    - #### getXWPFDocument

          public XWPFDocument getXWPFDocument()

      Description copied from interface: `IBody`
      Return XWPFDocument
      Specified by:
        `getXWPFDocument` in interface `IBody`

    - #### setXWPFDocument

          public void setXWPFDocument(XWPFDocument doc)

    - #### getPart

          public POIXMLDocumentPart getPart()

      returns the Part, to which the body belongs, which you need for adding relationship to other parts
      Specified by:
        `getPart` in interface `IBody`
      Returns:
        the Part, to which the body belongs
      See Also:
        `IBody.getPart()`

    - #### prepareForCommit

          protected void prepareForCommit()

      Description copied from class: `POIXMLDocumentPart`
      Ensure that a memory based package part does not have lingering data from previous commit() calls.

      Note: This is overwritten for some objects, as *PictureData seem to store the actual content in the part directly without keeping a copy like all others therefore we need to handle them differently.

      Overrides:
        `prepareForCommit` in class `POIXMLDocumentPart`

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.