org.apache.poi.hslf.usermodel
Class HSLFSlide

java.lang.Object
  extended by org.apache.poi.hslf.usermodel.HSLFSheet
      extended by 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
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
 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.
 Comment[] 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.
 boolean getHidden()
           
 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()
           
 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
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)
           
 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, createPicture, createTable, createTextBox, getPlaceholder, getPlaceholderByTextType, 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
getSlideShow
 
Methods inherited from interface org.apache.poi.sl.usermodel.ShapeContainer
addShape, createAutoShape, createConnector, createFreeform, createGroup, createPicture, createTable, createTextBox, getShapes, removeShape
 
Methods inherited from interface java.lang.Iterable
iterator
 

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

    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 Comment[] 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.


    getHeadersFooters

    public HeadersFooters getHeadersFooters()
    Header / Footer settings for this slide.

    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)

    getHidden

    public boolean getHidden()

    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>
    Returns:
    true if the placeholder should be displayed/rendered


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