Package 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:
Closeable,AutoCloseable,SlideShow<XSLFShape,XSLFTextParagraph>
@Beta
public class XMLSlideShow
extends POIXMLDocument
implements SlideShow<XSLFShape,XSLFTextParagraph>
High level representation of an 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
ConstructorsConstructorDescriptionXMLSlideShow(InputStream stream) XMLSlideShow(InputStream stream, boolean closeStream) XMLSlideShow(OPCPackage pkg) -
Method Summary
Modifier and TypeMethodDescriptionaddFont(InputStream fontStream) Add an EOT font to the slideshow.addPicture(byte[] pictureData, PictureData.PictureType format) Adds a picture to the workbook.addPicture(File pict, PictureData.PictureType format) Adds a picture to the presentation.addPicture(InputStream is, PictureData.PictureType format) Adds a picture to the slideshow.protected voidcommit()Save the content in the underlying package part.This method is used to create template for chart XML.createChart(XSLFSlide slide) Create a blank chart on the given slide.This method is not yet supported.voidCreate a notes master.Create a blank slide using the default (first) master.createSlide(XSLFSlideLayout layout) Create a slide and initialize it from the specified layout.findLayout(String name) Scan the master slides for the first slide layout with the given name.findPictureData(byte[] pictureData) check if a picture with this picture data already exists in this presentationGet the document's embedded files.Return all the charts in the slideshowReturns the list of comment authors, if there is one.org.openxmlformats.schemas.presentationml.x2006.main.CTPresentationintReturns the number that shall be displayed on the first slide of the presentation.getFonts()static intReturn the Notes Master, if there is one.getNotesSlide(XSLFSlide slide) Return notes slide for the specified slide or create new if it does not exist yet.Returns the current page sizeReturns all Pictures of this slideshow.Returns all slide masters.Return all the slides in the slideshowprotected voidFired when a package part is readremoveSlide(int index) Remove a slide from this presentation.voidsetFirstSlideNumber(int num) Sets the custom number that shall be displayed on the first slide of the presentation.static voidsetMaxRecordLength(int length) voidsetPageSize(Dimension pgSize) Change the current page sizevoidsetSlideOrder(XSLFSlide slide, int newIndex) voidUnsets the custom first slide number, reverting the numbering to the default (1).Methods inherited from class org.apache.poi.ooxml.POIXMLDocument
close, getCorePart, getPackage, getProperties, getRelatedByType, load, openPackage, writeMethods inherited from class org.apache.poi.ooxml.POIXMLDocumentPart
_invokeOnDocumentRead, addRelation, createHyperlink, createRelationship, createRelationship, createRelationship, getNextPartNumber, getPackagePart, getParent, getReferenceRelationship, getReferenceRelationships, getRelationById, getRelationId, getRelationPartById, getRelationParts, getRelations, getTargetPart, isCommitted, onDocumentCreate, onDocumentRemove, onSave, prepareForCommit, read, rebase, removeReferenceRelationship, removeRelation, removeRelation, removeRelation, setCommitted, toString
-
Constructor Details
-
XMLSlideShow
public XMLSlideShow() -
XMLSlideShow
- Parameters:
pkg- OPC package- Throws:
POIXMLException- a RuntimeException that can be caused by invalid OOXML dataIllegalStateException- a number of other runtime exceptions can be thrown, especially if there are problems with the input format
-
XMLSlideShow
- Parameters:
stream- InputStream, which is closed after it is read- Throws:
IOException- If reading data from the stream failsPOIXMLException- a RuntimeException that can be caused by invalid OOXML dataIllegalStateException- a number of other runtime exceptions can be thrown, especially if there are problems with the input format
-
XMLSlideShow
- Parameters:
stream- InputStreamcloseStream- Whether to close the InputStream- Throws:
IOException- If reading data from the stream failsPOIXMLException- a RuntimeException that can be caused by invalid OOXML dataIllegalStateException- a number of other runtime exceptions can be thrown, especially if there are problems with the input format- Since:
- 5.2.5
-
-
Method Details
-
setMaxRecordLength
public static void setMaxRecordLength(int length) - Parameters:
length- the max record length allowed for XMLSlideShow
-
getMaxRecordLength
public static int getMaxRecordLength()- Returns:
- the max record length allowed for XMLSlideShow
-
onDocumentRead
Description copied from class:POIXMLDocumentPartFired when a package part is read- Overrides:
onDocumentReadin classPOIXMLDocumentPart- Throws:
IOException- a subclass may throw an IOException when a document is read
-
commit
Description copied from class:POIXMLDocumentPartSave 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(); try (OutputStream out = part.getOutputStream()) { XmlObject bean = getXmlBean(); //the "model" which holds changes in memory bean.save(out, DEFAULT_XML_OPTIONS); } }- Overrides:
commitin classPOIXMLDocumentPart- Throws:
IOException- a subclass may throw an IOException if the changes can't be committed
-
getAllEmbeddedParts
Get the document's embedded files.- Specified by:
getAllEmbeddedPartsin classPOIXMLDocument- Returns:
- the document's embedded files
-
getPictureData
Description copied from interface:SlideShowReturns all Pictures of this slideshow. The returnedListis unmodifiable.- Specified by:
getPictureDatain interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Returns:
- a
ListofPictureData.
-
createSlide
Create a slide and initialize it from the specified layout.- Parameters:
layout- The layout to use for the new slide.- Returns:
- created slide
-
createSlide
Create a blank slide using the default (first) master.- Specified by:
createSlidein interfaceSlideShow<XSLFShape,XSLFTextParagraph>
-
createChart
Create a blank chart on the given slide. -
createChart
This method is used to create template for chart XML.- Returns:
- Xslf chart object
- Since:
- 4.1.0
-
getNotesSlide
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
Return the Notes Master, if there is one. (May not be present if no notes exist) -
getSlideMasters
Description copied from interface:SlideShowReturns all slide masters. This doesn't include notes master and other arbitrary masters.- Specified by:
getSlideMastersin interfaceSlideShow<XSLFShape,XSLFTextParagraph>
-
getSlides
Return all the slides in the slideshow- Specified by:
getSlidesin interfaceSlideShow<XSLFShape,XSLFTextParagraph>
-
getCharts
Return all the charts in the slideshow -
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
- Parameters:
newIndex- 0-based index of the slide
-
removeSlide
Remove a slide from this presentation.- Parameters:
index- The slide number to remove.- Returns:
- The slide that was removed.
- Throws:
IllegalStateException- a number of runtime exceptions can be thrown, especially if there are problems with the input format
-
getPageSize
Description copied from interface:SlideShowReturns the current page size- Specified by:
getPageSizein interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Returns:
- the page size
-
setPageSize
Description copied from interface:SlideShowChange the current page size- Specified by:
setPageSizein interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Parameters:
pgSize- page size (in points)
-
getCTPresentation
@Internal public org.openxmlformats.schemas.presentationml.x2006.main.CTPresentation getCTPresentation() -
addPicture
Adds a picture to the workbook.- Specified by:
addPicturein interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Parameters:
pictureData- The bytes of the pictureformat- The format of the picture.- Returns:
- the picture data
-
addPicture
public XSLFPictureData addPicture(InputStream is, PictureData.PictureType format) throws IOException Adds a picture to the slideshow.- Specified by:
addPicturein interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Parameters:
is- The stream to read image fromformat- The format of the picture- Returns:
- the picture data
- Throws:
IOException- Since:
- 3.15 beta 2
-
addPicture
Adds a picture to the presentation.- Specified by:
addPicturein interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Parameters:
pict- The file containing the image to addformat- The format of the picture.- Returns:
- the picture data
- Throws:
IOException- Since:
- 3.15 beta 2
-
findPictureData
check if a picture with this picture data already exists in this presentation- Specified by:
findPictureDatain interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Parameters:
pictureData- The picture data to find in the SlideShow- Returns:
nullif picture data is not found in this slideshow- Since:
- 3.15 beta 2
-
findLayout
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
-
createMasterSheet
@NotImplemented public MasterSheet<XSLFShape,XSLFTextParagraph> createMasterSheet() throws IOExceptionThis method is not yet supported.- Specified by:
createMasterSheetin interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Throws:
UnsupportedOperationException- this method is not yet supportedIOException
-
getMetadataTextExtractor
- Specified by:
getMetadataTextExtractorin interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Returns:
- an extractor for the slideshow metadata
-
getPersistDocument
- Specified by:
getPersistDocumentin interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Returns:
- the instance which handles the persisting of the slideshow,
which is either a subclass of
POIDocumentor org.apache.poi.ooxml.POIXMLDocument
-
addFont
Description copied from interface:SlideShowAdd 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:
addFontin interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Parameters:
fontStream- the EOT font as stream- Returns:
- the font info object containing the new font data
- Throws:
IOException- if the fontData can't be saved or if the fontData is no EOT font- See Also:
-
getFonts
- Specified by:
getFontsin interfaceSlideShow<XSLFShape,XSLFTextParagraph> - Returns:
- a list of registered fonts
-
getFirstSlideNumber
public int getFirstSlideNumber()Returns the number that shall be displayed on the first slide of the presentation. Subsequent slides will be numbered sequentially from this number. The default value is 1 if the property is not set in the presentation file.- Returns:
- The starting number for the first slide (default is 1).
- Since:
- 6.0.0
-
setFirstSlideNumber
public void setFirstSlideNumber(int num) Sets the custom number that shall be displayed on the first slide of the presentation. Subsequent slides will be numbered sequentially from this number. The value is restricted to the range [0, 9999] as defined in the Microsoft Office Implementation Information for ISO/IEC 29500 (MS-OI29500), specifically in Part 1, Section 19.2.1.26, presentation (Presentation), which restricts the XML Schema int datatype.- Parameters:
num- The starting number for the first slide (must be between 0 and 9999).- Throws:
IllegalArgumentException- if the provided number is outside the allowed range [0, 9999].- Since:
- 6.0.0
-
unsetFirstSlideNumber
public void unsetFirstSlideNumber()Unsets the custom first slide number, reverting the numbering to the default (1). This removes the 'firstSlideNum' attribute from presentation.xml.- Since:
- 6.0.0
-