org.apache.poi.xslf.usermodel

## Class XMLSlideShow

- java.lang.Object
- - org.apache.poi.ooxml.POIXMLDocumentPart
  - - org.apache.poi.ooxml.POIXMLDocument
    - - org.apache.poi.xslf.usermodel.XMLSlideShow

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, SlideShow<XSLFShape,XSLFTextParagraph>

      @Beta
      public class XMLSlideShow
      extends POIXMLDocument
      implements SlideShow<XSLFShape,XSLFTextParagraph>

  High level representation of a ooxml slideshow. This is the first object most users will construct whether they are reading or writing a slideshow. It is also the top level object for creating new slides/etc.

- - ### Nested Class Summary

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

      `POIXMLDocumentPart.RelationPart`

  - ### Field Summary

    - ### Fields inherited from class org.apache.poi.ooxml.POIXMLDocument

      `DOCUMENT_CREATOR, OLE_OBJECT_REL_TYPE, PACK_OBJECT_REL_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XMLSlideShow()`
    `XMLSlideShow(java.io.InputStream is)`
    `XMLSlideShow(OPCPackage pkg)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `XSLFFontInfo` | `addFont(java.io.InputStream fontStream)` Add an EOT font to the slideshow.
    `XSLFPictureData` | `addPicture(byte[] pictureData, PictureData.PictureType format)` Adds a picture to the workbook.
    `XSLFPictureData` | `addPicture(java.io.File pict, PictureData.PictureType format)` Adds a picture to the presentation.
    `XSLFPictureData` | `addPicture(java.io.InputStream is, PictureData.PictureType format)` Adds a picture to the slideshow.
    `protected void` | `commit()` Save the content in the underlying package part.
    `XSLFChart` | `createChart()` This method is used to create template for chart XML.
    `XSLFChart` | `createChart(XSLFSlide slide)` Create a blank chart on the given slide.
    `MasterSheet<XSLFShape,XSLFTextParagraph>` | `createMasterSheet()`
    `void` | `createNotesMaster()` Create a notes master.
    `XSLFSlide` | `createSlide()` Create a blank slide using the default (first) master.
    `XSLFSlide` | `createSlide(XSLFSlideLayout layout)` Create a slide and initialize it from the specified layout.
    `XSLFSlideLayout` | `findLayout(java.lang.String name)` Scan the master slides for the first slide layout with the given name.
    `XSLFPictureData` | `findPictureData(byte[] pictureData)` check if a picture with this picture data already exists in this presentation
    `java.util.List<PackagePart>` | `getAllEmbeddedParts()` Get the document's embedded files.
    `java.util.List<XSLFChart>` | `getCharts()` Return all the charts in the slideshow
    `XSLFCommentAuthors` | `getCommentAuthors()` Returns the list of comment authors, if there is one.
    `org.openxmlformats.schemas.presentationml.x2006.main.CTPresentation` | `getCTPresentation()`
    `java.util.List<XSLFFontInfo>` | `getFonts()`
    `POIXMLPropertiesTextExtractor` | `getMetadataTextExtractor()`
    `XSLFNotesMaster` | `getNotesMaster()` Return the Notes Master, if there is one.
    `XSLFNotes` | `getNotesSlide(XSLFSlide slide)` Return notes slide for the specified slide or create new if it does not exist yet.
    `java.awt.Dimension` | `getPageSize()` Returns the current page size
    `java.lang.Object` | `getPersistDocument()`
    `java.util.List<XSLFPictureData>` | `getPictureData()` Returns all Pictures of this slideshow.
    `java.util.List<XSLFSlideMaster>` | `getSlideMasters()` Returns all slide masters.
    `java.util.List<XSLFSlide>` | `getSlides()` Return all the slides in the slideshow
    `XSLFTableStyles` | `getTableStyles()`
    `protected void` | `onDocumentRead()` Fired when a package part is read
    `XSLFSlide` | `removeSlide(int index)`
    `void` | `setPageSize(java.awt.Dimension pgSize)` Change the current page size
    `void` | `setSlideOrder(XSLFSlide slide, int newIndex)`

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

      `close, getAllEmbedds, getCorePart, getPackage, getProperties, getRelatedByType, load, openPackage, write`

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

      `_invokeOnDocumentRead, addRelation, createRelationship, createRelationship, createRelationship, getNextPartNumber, getPackagePart, getParent, getRelationById, getRelationId, getRelationPartById, getRelationParts, getRelations, getTargetPart, isCommited, isCommitted, onDocumentCreate, onDocumentRemove, onSave, prepareForCommit, 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.sl.usermodel.SlideShow

      `write`

    - ### Methods inherited from interface java.io.Closeable

      `close`

- - ### Constructor Detail

    - #### XMLSlideShow

          public XMLSlideShow()

    - #### XMLSlideShow

          public XMLSlideShow(OPCPackage pkg)

    - #### XMLSlideShow

          public XMLSlideShow(java.io.InputStream is)
                       throws java.io.IOException

      Throws:
        `java.io.IOException`

  - ### 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

    - #### commit

          protected void commit()
                         throws java.io.IOException

      Description copied from class: `POIXMLDocumentPart`
      Save the content in the underlying package part. Default implementation is empty meaning that the package part is left unmodified.

      Sub-classes should override and add logic to marshal the "model" into Ooxml4J.

      For example, the code saving a generic XML entry may look as follows:

           protected void commit() throws IOException {
             PackagePart part = getPackagePart();
             OutputStream out = part.getOutputStream();
             XmlObject bean = getXmlBean(); //the "model" which holds changes in memory
             bean.save(out, DEFAULT_XML_OPTIONS);
             out.close();
           }

      Overrides:
        `commit` in class `POIXMLDocumentPart`
      Throws:
        `java.io.IOException` - a subclass may throw an IOException if the changes can't be committed

    - #### getAllEmbeddedParts

          public java.util.List<PackagePart> getAllEmbeddedParts()

      Get the document's embedded files.
      Specified by:
        `getAllEmbeddedParts` in class `POIXMLDocument`
      Returns:
        the document's embedded files

    - #### getPictureData

          public java.util.List<XSLFPictureData> getPictureData()

      Description copied from interface: `SlideShow`
      Returns all Pictures of this slideshow. The returned `List` is unmodifiable.
      Specified by:
        `getPictureData` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Returns:
        a `List` of `PictureData`.

    - #### createSlide

          public XSLFSlide createSlide(XSLFSlideLayout layout)

      Create a slide and initialize it from the specified layout.
      Parameters:
        `layout` - The layout to use for the new slide.
      Returns:
        created slide

    - #### createSlide

          public XSLFSlide createSlide()

      Create a blank slide using the default (first) master.
      Specified by:
        `createSlide` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`

    - #### createChart

          public XSLFChart createChart(XSLFSlide slide)

      Create a blank chart on the given slide.

    - #### createChart

          public XSLFChart createChart()

      This method is used to create template for chart XML.
      Returns:
        Xslf chart object
      Since:
        POI 4.1.0

    - #### getNotesSlide

          public XSLFNotes getNotesSlide(XSLFSlide slide)

      Return notes slide for the specified slide or create new if it does not exist yet.

    - #### createNotesMaster

          public void createNotesMaster()

      Create a notes master.

    - #### getNotesMaster

          public XSLFNotesMaster getNotesMaster()

      Return the Notes Master, if there is one. (May not be present if no notes exist)

    - #### getSlideMasters

          public java.util.List<XSLFSlideMaster> getSlideMasters()

      Description copied from interface: `SlideShow`
      Returns all slide masters. This doesn't include notes master and other arbitrary masters.
      Specified by:
        `getSlideMasters` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`

    - #### getSlides

          public java.util.List<XSLFSlide> getSlides()

      Return all the slides in the slideshow
      Specified by:
        `getSlides` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`

    - #### getCharts

          public java.util.List<XSLFChart> getCharts()

      Return all the charts in the slideshow

    - #### getCommentAuthors

          public XSLFCommentAuthors getCommentAuthors()

      Returns the list of comment authors, if there is one. Will only be present if at least one slide has comments on it.

    - #### setSlideOrder

          public void setSlideOrder(XSLFSlide slide,
                                    int newIndex)

      Parameters:
        `newIndex` - 0-based index of the slide

    - #### removeSlide

          public XSLFSlide removeSlide(int index)

    - #### getPageSize

          public java.awt.Dimension getPageSize()

      Description copied from interface: `SlideShow`
      Returns the current page size
      Specified by:
        `getPageSize` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Returns:
        the page size

    - #### setPageSize

          public void setPageSize(java.awt.Dimension pgSize)

      Description copied from interface: `SlideShow`
      Change the current page size
      Specified by:
        `setPageSize` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Parameters:
        `pgSize` - page size (in points)

    - #### getCTPresentation

          @Internal
          public org.openxmlformats.schemas.presentationml.x2006.main.CTPresentation getCTPresentation()

    - #### addPicture

          public XSLFPictureData addPicture(byte[] pictureData,
                                            PictureData.PictureType format)

      Adds a picture to the workbook.
      Specified by:
        `addPicture` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Parameters:
        `pictureData` - The bytes of the picture
        `format` - The format of the picture.
      Returns:
        the picture data

    - #### addPicture

          public XSLFPictureData addPicture(java.io.InputStream is,
                                            PictureData.PictureType format)
                                     throws java.io.IOException

      Adds a picture to the slideshow.
      Specified by:
        `addPicture` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Parameters:
        `is` - The stream to read image from
        `format` - The format of the picture
      Returns:
        the picture data
      Throws:
        `java.io.IOException`
      Since:
        3.15 beta 2

    - #### addPicture

          public XSLFPictureData addPicture(java.io.File pict,
                                            PictureData.PictureType format)
                                     throws java.io.IOException

      Adds a picture to the presentation.
      Specified by:
        `addPicture` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Parameters:
        `pict` - The file containing the image to add
        `format` - The format of the picture.
      Returns:
        the picture data
      Throws:
        `java.io.IOException`
      Since:
        3.15 beta 2

    - #### findPictureData

          public XSLFPictureData findPictureData(byte[] pictureData)

      check if a picture with this picture data already exists in this presentation
      Specified by:
        `findPictureData` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Parameters:
        `pictureData` - The picture data to find in the SlideShow
      Returns:
        `null` if picture data is not found in this slideshow
      Since:
        3.15 beta 2

    - #### findLayout

          public XSLFSlideLayout findLayout(java.lang.String name)

      Scan the master slides for the first slide layout with the given name.
      Parameters:
        `name` - The layout name (case-insensitive). Cannot be null.
      Returns:
        the first layout found or null on failure

    - #### getTableStyles

          public XSLFTableStyles getTableStyles()

    - #### createMasterSheet

          public MasterSheet<XSLFShape,XSLFTextParagraph> createMasterSheet()
                                                                     throws java.io.IOException

      Specified by:
        `createMasterSheet` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Throws:
        `java.io.IOException`

    - #### getMetadataTextExtractor

          public POIXMLPropertiesTextExtractor getMetadataTextExtractor()

      Specified by:
        `getMetadataTextExtractor` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Returns:
        an extractor for the slideshow metadata

    - #### getPersistDocument

          public java.lang.Object getPersistDocument()

      Specified by:
        `getPersistDocument` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Returns:
        the instance which handles the persisting of the slideshow, which is either a subclass of `POIDocument` or `POIXMLDocument`

    - #### addFont

          public XSLFFontInfo addFont(java.io.InputStream fontStream)
                               throws java.io.IOException

      Description copied from interface: `SlideShow`
      Add an EOT font to the slideshow. An EOT or MTX font is a transformed True-Type (.ttf) or Open-Type (.otf) font. To transform a True-Type font use the sfntly library (see "see also" below)

      (Older?) Powerpoint versions handle embedded fonts by converting them to .ttf files and put them into the Windows fonts directory. If the user is not allowed to install fonts, the slideshow can't be opened. While the slideshow is opened, its possible to copy the extracted .ttfs from the fonts directory. When the slideshow is closed, they will be removed.

      Specified by:
        `addFont` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Parameters:
        `fontStream` - the EOT font as stream
      Returns:
        the font info object containing the new font data
      Throws:
        `java.io.IOException` - if the fontData can't be saved or if the fontData is no EOT font
      See Also:
        EOT specification, googles sfntly library, Example on how to subset and embed fonts

    - #### getFonts

          public java.util.List<XSLFFontInfo> getFonts()

      Specified by:
        `getFonts` in interface `SlideShow<XSLFShape,XSLFTextParagraph>`
      Returns:
        a list of registered fonts

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