org.apache.poi.hslf.usermodel

## Class HSLFSlide

- java.lang.Object
- - org.apache.poi.hslf.usermodel.HSLFSheet
  - - org.apache.poi.hslf.usermodel.HSLFSlide

- All Implemented Interfaces:
    java.lang.Iterable<HSLFShape>, HSLFShapeContainer, ShapeContainer<HSLFShape,HSLFTextParagraph>, Sheet<HSLFShape,HSLFTextParagraph>, Slide<HSLFShape,HSLFTextParagraph>

      public final class HSLFSlide
      extends HSLFSheet
      implements Slide<HSLFShape,HSLFTextParagraph>

  This class represents a slide in a PowerPoint Document. It allows access to the text within, and the layout. For now, it only does the text side of things though
  Author:
    Nick Burch, Yegor Kozlov

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HSLFSlide(int sheetNumber, int sheetRefId, int slideNumber)` Create a new Slide instance
    `HSLFSlide(Slide slide, HSLFNotes notes, SlideListWithText.SlideAtomsSet atomSet, int slideIdentifier, int slideNumber)` Constructs a Slide from the Slide record, and the SlideAtomsSet containing the text.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `HSLFTextBox` | `addTitle()` Create a `TextBox` object that represents the slide's title.
    `void` | `draw(java.awt.Graphics2D graphics)` Convenience method to draw a sheet to a graphics context
    `HSLFBackground` | `getBackground()` Background for this slide.
    `ColorSchemeAtom` | `getColorScheme()` Color scheme for this slide.
    `java.util.List<HSLFComment>` | `getComments()` Get the comment(s) for this slide.
    `boolean` | `getDisplayPlaceholder(Placeholder placeholder)` In XSLF, slidenumber and date shapes aren't marked as placeholders whereas in HSLF they are activated via a HeadersFooter configuration.
    `boolean` | `getFollowMasterBackground()` Whether this slide follows master sheet background
    `boolean` | `getFollowMasterColourScheme()`
    `boolean` | `getFollowMasterGraphics()`
    `boolean` | `getFollowMasterObjects()` Whether this slide draws master sheet objects
    `boolean` | `getFollowMasterScheme()` Whether this slide follows master color scheme
    `HeadersFooters` | `getHeadersFooters()` Header / Footer settings for this slide.
    `HSLFMasterSheet` | `getMasterSheet()` Returns master sheet associated with this slide.
    `HSLFNotes` | `getNotes()` Returns the Notes Sheet for this slide, or null if there isn't one
    `StyleTextProp9Atom[]` | `getNumberedListInfo()` This will return an atom per TextBox, so if the page has two text boxes the method should return two atoms.
    `protected SlideListWithText.SlideAtomsSet` | `getSlideAtomsSet()`
    `HSLFMasterSheet` | `getSlideLayout()`
    `java.lang.String` | `getSlideName()`
    `int` | `getSlideNumber()` Returns the (public facing) page number of this slide
    `Slide` | `getSlideRecord()` Returns the underlying slide record
    `EscherTextboxWrapper[]` | `getTextboxWrappers()`
    `java.util.List<java.util.List<HSLFTextParagraph>>` | `getTextParagraphs()` Returns an array of all the TextRuns found
    `java.lang.String` | `getTitle()` The title is a run of text of type `TextHeaderAtom.CENTER_TITLE_TYPE` or `TextHeaderAtom.TITLE_TYPE`
    `boolean` | `isHidden()`
    `protected void` | `onAddTextShape(HSLFTextShape shape)` Subclasses should call this method and update the array of text runs when a text shape is added
    `void` | `onCreate()` Called by SlideShow ater a new slide is created.
    `void` | `setFollowMasterBackground(boolean flag)` Sets whether this slide follows master background
    `void` | `setFollowMasterColourScheme(boolean follow)`
    `void` | `setFollowMasterObjects(boolean flag)` Sets whether this slide draws master sheet objects
    `void` | `setFollowMasterScheme(boolean flag)` Sets whether this slide draws master color scheme
    `void` | `setHidden(boolean hidden)` Sets the slide visibility
    `void` | `setMasterSheet(HSLFMasterSheet master)` Change Master of this slide.
    `void` | `setNotes(Notes<HSLFShape,HSLFTextParagraph> notes)` Sets the Notes that are associated with this.
    `void` | `setSlideNumber(int newSlideNumber)` Changes the Slide's (external facing) page number.

    - ### Methods inherited from class org.apache.poi.hslf.usermodel.HSLFSheet

      `_getSheetNumber, _getSheetRefId, addShape, allocateShapeId, createAutoShape, createConnector, createFreeform, createGroup, createOleShape, createPicture, createTable, createTextBox, getPlaceholder, getPlaceholderByTextType, getPlaceholderDetails, getPPDrawing, getProgrammableTag, getShapes, getSheetContainer, getSlideShow, iterator, removeShape, setSlideShow`

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

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

    - ### Methods inherited from interface org.apache.poi.sl.usermodel.Sheet

      `getPlaceholderDetails, getSlideShow`

    - ### Methods inherited from interface org.apache.poi.sl.usermodel.ShapeContainer

      `addShape, createAutoShape, createConnector, createFreeform, createGroup, createOleShape, createPicture, createTable, createTextBox, getShapes, removeShape`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, iterator, spliterator`

- - ### Constructor Detail

    - #### HSLFSlide

          public HSLFSlide(Slide slide,
                           HSLFNotes notes,
                           SlideListWithText.SlideAtomsSet atomSet,
                           int slideIdentifier,
                           int slideNumber)

      Constructs a Slide from the Slide record, and the SlideAtomsSet containing the text. Initializes TextRuns, to provide easier access to the text
      Parameters:
        `slide` - the Slide record we're based on
        `notes` - the Notes sheet attached to us
        `atomSet` - the SlideAtomsSet to get the text from

    - #### HSLFSlide

          public HSLFSlide(int sheetNumber,
                           int sheetRefId,
                           int slideNumber)

      Create a new Slide instance
      Parameters:
        `sheetNumber` - The internal number of the sheet, as used by PersistPtrHolder
        `slideNumber` - The user facing number of the sheet

  - ### Method Detail

    - #### getNotes

          public HSLFNotes getNotes()

      Returns the Notes Sheet for this slide, or null if there isn't one
      Specified by:
        `getNotes` in interface `Slide<HSLFShape,HSLFTextParagraph>`

    - #### setNotes

          public void setNotes(Notes<HSLFShape,HSLFTextParagraph> notes)

      Sets the Notes that are associated with this. Updates the references in the records to point to the new ID
      Specified by:
        `setNotes` in interface `Slide<HSLFShape,HSLFTextParagraph>`

    - #### setSlideNumber

          public void setSlideNumber(int newSlideNumber)

      Changes the Slide's (external facing) page number.
      See Also:
        `HSLFSlideShow.reorderSlide(int, int)`

    - #### onCreate

          public void onCreate()

      Called by SlideShow ater a new slide is created.

      For Slide we need to do the following:

    - set id of the drawing group.
    - set shapeId for the container descriptor and background

Overrides:
  `onCreate` in class `HSLFSheet`

- #### addTitle

      public HSLFTextBox addTitle()

  Create a `TextBox` object that represents the slide's title.
  Returns:
    `TextBox` object that represents the slide's title.

- #### getTitle

      public java.lang.String getTitle()

  The title is a run of text of type `TextHeaderAtom.CENTER_TITLE_TYPE` or `TextHeaderAtom.TITLE_TYPE`

  Specified by:
    `getTitle` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    title of this slide or null if title is not set
  See Also:
    `TextHeaderAtom`

- #### getSlideName

      public java.lang.String getSlideName()

  Specified by:
    `getSlideName` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    the slide name, defaults to "Slide[slideNumber]"

- #### getTextParagraphs

      public java.util.List<java.util.List<HSLFTextParagraph>> getTextParagraphs()

  Returns an array of all the TextRuns found
  Specified by:
    `getTextParagraphs` in class `HSLFSheet`

- #### getSlideNumber

      public int getSlideNumber()

  Returns the (public facing) page number of this slide
  Specified by:
    `getSlideNumber` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    the 1-based slide no.

- #### getSlideRecord

      public Slide getSlideRecord()

  Returns the underlying slide record

- #### getSlideAtomsSet

      protected SlideListWithText.SlideAtomsSet getSlideAtomsSet()

  Returns:
    set of records inside `SlideListWithtext` container which hold text data for this slide (typically for placeholders).

- #### getMasterSheet

      public HSLFMasterSheet getMasterSheet()

  Returns master sheet associated with this slide. It can be either SlideMaster or TitleMaster objects.
  Specified by:
    `getMasterSheet` in interface `Sheet<HSLFShape,HSLFTextParagraph>`
  Specified by:
    `getMasterSheet` in class `HSLFSheet`
  Returns:
    the master sheet associated with this slide.

- #### setMasterSheet

      public void setMasterSheet(HSLFMasterSheet master)

  Change Master of this slide.

- #### setFollowMasterBackground

      public void setFollowMasterBackground(boolean flag)

  Sets whether this slide follows master background
  Specified by:
    `setFollowMasterBackground` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Parameters:
    `flag` - `true` if the slide follows master, `false` otherwise

- #### getFollowMasterBackground

      public boolean getFollowMasterBackground()

  Whether this slide follows master sheet background
  Specified by:
    `getFollowMasterBackground` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    `true` if the slide follows master background, `false` otherwise

- #### setFollowMasterObjects

      public void setFollowMasterObjects(boolean flag)

  Sets whether this slide draws master sheet objects
  Specified by:
    `setFollowMasterObjects` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Parameters:
    `flag` - `true` if the slide draws master sheet objects, `false` otherwise

- #### getFollowMasterScheme

      public boolean getFollowMasterScheme()

  Whether this slide follows master color scheme
  Returns:
    `true` if the slide follows master color scheme, `false` otherwise

- #### setFollowMasterScheme

      public void setFollowMasterScheme(boolean flag)

  Sets whether this slide draws master color scheme
  Parameters:
    `flag` - `true` if the slide draws master color scheme, `false` otherwise

- #### getFollowMasterObjects

      public boolean getFollowMasterObjects()

  Whether this slide draws master sheet objects
  Specified by:
    `getFollowMasterObjects` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    `true` if the slide draws master sheet objects, `false` otherwise

- #### getBackground

      public HSLFBackground getBackground()

  Background for this slide.
  Specified by:
    `getBackground` in interface `Sheet<HSLFShape,HSLFTextParagraph>`
  Overrides:
    `getBackground` in class `HSLFSheet`
  Returns:
    the background shape for this sheet.

- #### getColorScheme

      public ColorSchemeAtom getColorScheme()

  Color scheme for this slide.
  Overrides:
    `getColorScheme` in class `HSLFSheet`

- #### getComments

      public java.util.List<HSLFComment> getComments()

  Get the comment(s) for this slide. Note - for now, only works on PPT 2000 and PPT 2003 files. Doesn't work for PPT 97 ones, as they do their comments oddly.
  Specified by:
    `getComments` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    the comment(s) for this slide

- #### getHeadersFooters

      public HeadersFooters getHeadersFooters()

  Header / Footer settings for this slide.
  Overrides:
    `getHeadersFooters` in class `HSLFSheet`
  Returns:
    Header / Footer settings for this slide

- #### onAddTextShape

      protected void onAddTextShape(HSLFTextShape shape)

  Description copied from class: `HSLFSheet`
  Subclasses should call this method and update the array of text runs when a text shape is added
  Overrides:
    `onAddTextShape` in class `HSLFSheet`

- #### getNumberedListInfo

      public StyleTextProp9Atom[] getNumberedListInfo()

  This will return an atom per TextBox, so if the page has two text boxes the method should return two atoms.

- #### getTextboxWrappers

      public EscherTextboxWrapper[] getTextboxWrappers()

- #### setHidden

      public void setHidden(boolean hidden)

  Description copied from interface: `Slide`
  Sets the slide visibility
  Specified by:
    `setHidden` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Parameters:
    `hidden` - slide visibility, if `true` the slide is hidden, `false` shows the slide

- #### isHidden

      public boolean isHidden()

  Specified by:
    `isHidden` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    the slide visibility, the slide is hidden when `true` - or shown when `false`

- #### draw

      public void draw(java.awt.Graphics2D graphics)

  Description copied from interface: `Sheet`
  Convenience method to draw a sheet to a graphics context
  Specified by:
    `draw` in interface `Sheet<HSLFShape,HSLFTextParagraph>`
  Overrides:
    `draw` in class `HSLFSheet`

- #### getFollowMasterColourScheme

      public boolean getFollowMasterColourScheme()

  Specified by:
    `getFollowMasterColourScheme` in interface `Slide<HSLFShape,HSLFTextParagraph>`

- #### setFollowMasterColourScheme

      public void setFollowMasterColourScheme(boolean follow)

  Specified by:
    `setFollowMasterColourScheme` in interface `Slide<HSLFShape,HSLFTextParagraph>`

- #### getFollowMasterGraphics

      public boolean getFollowMasterGraphics()

  Specified by:
    `getFollowMasterGraphics` in interface `Sheet<HSLFShape,HSLFTextParagraph>`
  Overrides:
    `getFollowMasterGraphics` in class `HSLFSheet`
  Returns:
    whether shapes on the master sheet should be shown. By default master graphics is turned off. Sheets that support the notion of master (slide, slideLayout) should override it and check this setting

- #### getDisplayPlaceholder

      public boolean getDisplayPlaceholder(Placeholder placeholder)

  Description copied from interface: `Slide`
  In XSLF, slidenumber and date shapes aren't marked as placeholders whereas in HSLF they are activated via a HeadersFooter configuration. This method is used to generalize that handling.
  Specified by:
    `getDisplayPlaceholder` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Parameters:
    `placeholder` - the placeholder type
  Returns:
    `true` if the placeholder should be displayed/rendered

- #### getSlideLayout

      public HSLFMasterSheet getSlideLayout()

  Specified by:
    `getSlideLayout` in interface `Slide<HSLFShape,HSLFTextParagraph>`
  Returns:
    the assigned slide layout

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