You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/09/24 23:26:00 UTC
svn commit: r1867502 [8/20] - in /poi/site/publish: ./ components/
components/hmef/ components/hpbf/ components/hpsf/ components/poifs/
components/slideshow/ components/spreadsheet/ devel/ devel/plan/
devel/references/ skin/ skin/images/
Modified: poi/site/publish/components/slideshow/ppt-file-format.html
URL: http://svn.apache.org/viewvc/poi/site/publish/components/slideshow/ppt-file-format.html?rev=1867502&r1=1867501&r2=1867502&view=diff
==============================================================================
--- poi/site/publish/components/slideshow/ppt-file-format.html (original)
+++ poi/site/publish/components/slideshow/ppt-file-format.html Tue Sep 24 23:26:00 2019
@@ -391,38 +391,101 @@ document.write("Last Published: " + docu
back through all the UserEditAtoms, until you reach the first one
from a full save.
</p>
-<pre class="code">
-/-------------------------------\
-| CurrentUserAtom (own stream) |
-| OffsetToCurrentEdit = 10562 |==\
-\-------------------------------/ |
- |
-/==================================/
-| /-----------------------------------\
-| | PersistPtrIncrementalBlock @ 6144 |
-| \-----------------------------------/
-| /---------------------------------\ |
-| | UserEditAtom @ 6176 | |
-| | LastUserEditAtomOffset = 0 | |
-| | PersistPointersOffset = 6144 |==================/
-| \---------------------------------/
-| | /-----------------------------------\
-| \====================\ | PersistPtrIncrementalBlock @ 8646 |
-| | \-----------------------------------/
-| /---------------------------------\ | |
-| | UserEditAtom @ 8674 | | |
-| | LastUserEditAtomOffset = 6176 |=/ |
-| | PersistPointersOffset = 8646 |==================/
-| \---------------------------------/
-| | /------------------------------------\
-| \====================\ | PersistPtrIncrementalBlock @ 10538 |
-| | \------------------------------------/
-| /---------------------------------\ | |
-\==| UserEditAtom @ 10562 | | |
- | LastUserEditAtomOffset = 8674 |=/ |
- | PersistPointersOffset = 10538 |==================/
- \---------------------------------/
-</pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">/-------------------------------\</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| CurrentUserAtom (own stream) |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| OffsetToCurrentEdit = 10562 |==\</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">\-------------------------------/ |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">/==================================/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| /-----------------------------------\</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | PersistPtrIncrementalBlock @ 6144 |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| \-----------------------------------/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| /---------------------------------\ |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | UserEditAtom @ 6176 | |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | LastUserEditAtomOffset = 0 | |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | PersistPointersOffset = 6144 |==================/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| \---------------------------------/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | /-----------------------------------\</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| \====================\ | PersistPtrIncrementalBlock @ 8646 |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | \-----------------------------------/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| /---------------------------------\ | |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | UserEditAtom @ 8674 | | |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | LastUserEditAtomOffset = 6176 |=/ |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | PersistPointersOffset = 8646 |==================/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| \---------------------------------/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | /------------------------------------\</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| \====================\ | PersistPtrIncrementalBlock @ 10538 |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| | \------------------------------------/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">| /---------------------------------\ | |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">\==| UserEditAtom @ 10562 | | |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> | LastUserEditAtomOffset = 8674 |=/ |</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> | PersistPointersOffset = 10538 |==================/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> \---------------------------------/</span>
+</div>
+</div>
<p>
The PersistPtrIncrementalBlock contains byte offsets to all the
Slides, Notes, Documents and MasterSlides in the file. The first
@@ -447,23 +510,56 @@ document.write("Last Published: " + docu
the value being the offset to that sheet. If there is any data
left after parsing a block, then it corresponds to the next block.
</p>
-<pre class="code">
-hex on disk decimal description
------------ ------- -----------
-0000 0 No options
-7217 6002 Record type is 6002
-2000 0000 32 Length of data is 32 bytes
-0100 5000 5242881 Count is 5 (12 highest bits)
- Starting number is 1 (20 lowest bits)
-0000 0000 0 Sheet (1+0)=1 starts at offset 0
-900D 0000 3472 Sheet (1+1)=2 starts at offset 3472
-E403 0000 996 Sheet (1+2)=3 starts at offset 996
-9213 0000 5010 Sheet (1+3)=4 starts at offset 5010
-BE15 0000 5566 Sheet (1+4)=5 starts at offset 5566
-0900 1000 1048585 Count is 1 (12 highest bits)
- Starting number is 9 (20 lowest bits)
-4418 0000 6212 Sheet (9+0)=9 starts at offset 9212
-</pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">hex on disk decimal description</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">----------- ------- -----------</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 No options</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">7217 6002 Record type is 6002</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">2000 0000 32 Length of data is 32 bytes</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0100 5000 5242881 Count is 5 (12 highest bits)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> Starting number is 1 (20 lowest bits)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0000 0 Sheet (1+0)=1 starts at offset 0</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">900D 0000 3472 Sheet (1+1)=2 starts at offset 3472</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">E403 0000 996 Sheet (1+2)=3 starts at offset 996</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">9213 0000 5010 Sheet (1+3)=4 starts at offset 5010</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">BE15 0000 5566 Sheet (1+4)=5 starts at offset 5566</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0900 1000 1048585 Count is 1 (12 highest bits)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> Starting number is 9 (20 lowest bits)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">4418 0000 6212 Sheet (9+0)=9 starts at offset 9212</span>
+</div>
+</div>
</div>
@@ -550,59 +646,164 @@ BE15 0000 5566 Sheet (1
mask, to indicate a number of different sub-stylings.
The styling for bold/italic/underline is one such example.
</p>
-<pre class="code">
-hex on disk decimal description
------------ ------- -----------
-
-0000 0 No options
-A10F 4001 Record type is 4001
-8000 0000 128 Length of data is 128 bytes
-1E00 0000 30 The paragraph styling applies to 30 characters
-0000 0 Paragraph options are 0
-0018 0000 6144 0x0800=Text Alignment, 0x1000=Line Spacing
-0000 0 Text Alignment = Left
-5000 80 Line Spacing = 80
-
-1C00 0000 28 The paragraph styling applies to 28 characters
-0000 0 Paragraph options are 0
-0010 0000 4096 0x1000=Line Spacing
-5000 80 Line Spacing = 80
-
-1900 0000 25 The paragraph styling applies to 25 characters
-0000 0 Paragraph options are 0
-0018 0000 6144 0x0800=Text Alignment, 0x1000=Line Spacing
-0200 0 Text Alignment = Right
-5000 80 Line Spacing = 80
-
-6100 0000 61 The paragraph styling applies to 61 characters
- (includes final CR)
-0000 0 Paragraph options are 0
-0018 0000 6144 0x0800=Text Alignment, 0x1000=Line Spacing
-0000 0 Text Alignment = Left
-5000 80 Line Spacing = 80
-
-1E00 0000 30 The character styling applies to 30 characters
-0100 0200 131073 0x0001=Char Props Mask, 0x20000=Font Size
-0100 1 Char Props 0x0001=Bold
-1400 20 Font Size = 20
-
-1C00 0000 28 The character styling applies to 28 characters
-0200 0600 393218 0x0002=Char Props Mask, 0x20000=Font Size, 0x40000=Font Color
-0200 2 Char Props 0x0002=Italic
-1400 20 Font Size = 20
-0000 0005 83886080 Blue
-
-1900 0000 25 The character styling applies to 25 characters
-0000 0600 393216 0x20000=Font Size, 0x40000=Font Color
-1400 20 Font Size = 20
-FF33 00FE 4261426175 Red
-
-6000 0000 96 The character styling applies to 96 characters
-0400 0300 196612 0x0004=Char Props Mask, 0x10000=Font Index, 0x20000=Font Size
-0400 4 Char Props 0x0004=Underlined
-0100 1 Font Index = 1 (2nd Font in table)
-1800 24 Font Size = 24
-</pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">hex on disk decimal description</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">----------- ------- -----------</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 No options</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">A10F 4001 Record type is 4001</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">8000 0000 128 Length of data is 128 bytes</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1E00 0000 30 The paragraph styling applies to 30 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 Paragraph options are 0</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0018 0000 6144 0x0800=Text Alignment, 0x1000=Line Spacing</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 Text Alignment = Left</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">5000 80 Line Spacing = 80</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1C00 0000 28 The paragraph styling applies to 28 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 Paragraph options are 0</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0010 0000 4096 0x1000=Line Spacing</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">5000 80 Line Spacing = 80</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1900 0000 25 The paragraph styling applies to 25 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 Paragraph options are 0</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0018 0000 6144 0x0800=Text Alignment, 0x1000=Line Spacing</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0200 0 Text Alignment = Right</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">5000 80 Line Spacing = 80</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">6100 0000 61 The paragraph styling applies to 61 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> (includes final CR)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 Paragraph options are 0</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0018 0000 6144 0x0800=Text Alignment, 0x1000=Line Spacing</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0 Text Alignment = Left</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">5000 80 Line Spacing = 80</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1E00 0000 30 The character styling applies to 30 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0100 0200 131073 0x0001=Char Props Mask, 0x20000=Font Size</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0100 1 Char Props 0x0001=Bold</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1400 20 Font Size = 20</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1C00 0000 28 The character styling applies to 28 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0200 0600 393218 0x0002=Char Props Mask, 0x20000=Font Size, 0x40000=Font Color</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0200 2 Char Props 0x0002=Italic</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1400 20 Font Size = 20</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0005 83886080 Blue</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1900 0000 25 The character styling applies to 25 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0000 0600 393216 0x20000=Font Size, 0x40000=Font Color</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1400 20 Font Size = 20</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">FF33 00FE 4261426175 Red</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">6000 0000 96 The character styling applies to 96 characters</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0400 0300 196612 0x0004=Char Props Mask, 0x10000=Font Index, 0x20000=Font Size</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0400 4 Char Props 0x0004=Underlined</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">0100 1 Font Index = 1 (2nd Font in table)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">1800 24 Font Size = 24</span>
+</div>
+</div>
</div>
Modified: poi/site/publish/components/slideshow/xslf-cookbook.html
URL: http://svn.apache.org/viewvc/poi/site/publish/components/slideshow/xslf-cookbook.html?rev=1867502&r1=1867501&r2=1867502&view=diff
==============================================================================
--- poi/site/publish/components/slideshow/xslf-cookbook.html (original)
+++ poi/site/publish/components/slideshow/xslf-cookbook.html Tue Sep 24 23:26:00 2019
@@ -362,199 +362,551 @@ document.write("Last Published: " + docu
<p>
The following code creates a new .pptx slide show and adds a blank slide to it:
</p>
-<pre class="code">
- //create a new empty slide show
- XMLSlideShow ppt = new XMLSlideShow();
-
- //add first slide
- XSLFSlide blankSlide = ppt.createSlide();
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">//create a new empty slide show</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">//add first slide</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide blankSlide = ppt.createSlide();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="ReadPresentation" id="ReadPresentation"></a><a name="Read+an+existing+presentation+and+append+a+slide+to+it"></a>
<h4>Read an existing presentation and append a slide to it</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));
-
- //append a new slide to the end
- XSLFSlide blankSlide = ppt.createSlide();
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">//append a new slide to the end</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide blankSlide = ppt.createSlide();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="SlideLayout" id="SlideLayout"></a><a name="Create+a+new+slide+from+a+predefined+slide+layout"></a>
<h4>Create a new slide from a predefined slide layout</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));
-
- // first see what slide layouts are available :
- System.out.println("Available slide layouts:");
- for(XSLFSlideMaster master : ppt.getSlideMasters()){
- for(XSLFSlideLayout layout : master.getSlideLayouts()){
- System.out.println(layout.getType());
- }
- }
-
- // blank slide
- XSLFSlide blankSlide = ppt.createSlide();
-
- // there can be multiple masters each referencing a number of layouts
- // for demonstration purposes we use the first (default) slide master
- XSLFSlideMaster defaultMaster = ppt.getSlideMasters().get(0);
-
- // title slide
- XSLFSlideLayout titleLayout = defaultMaster.getLayout(SlideLayout.TITLE);
- // fill the placeholders
- XSLFSlide slide1 = ppt.createSlide(titleLayout);
- XSLFTextShape title1 = slide1.getPlaceholder(0);
- title1.setText("First Title");
-
- // title and content
- XSLFSlideLayout titleBodyLayout = defaultMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
- XSLFSlide slide2 = ppt.createSlide(titleBodyLayout);
-
- XSLFTextShape title2 = slide2.getPlaceholder(0);
- title2.setText("Second Title");
-
- XSLFTextShape body2 = slide2.getPlaceholder(1);
- body2.clearText(); // unset any existing text
- body2.addNewTextParagraph().addNewTextRun().setText("First paragraph");
- body2.addNewTextParagraph().addNewTextRun().setText("Second paragraph");
- body2.addNewTextParagraph().addNewTextRun().setText("Third paragraph");
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// first see what slide layouts are available :</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">System.out.println("Available slide layouts:");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">for(XSLFSlideMaster master : ppt.getSlideMasters()){</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> for(XSLFSlideLayout layout : master.getSlideLayouts()){</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> System.out.println(layout.getType());</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> }</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">}</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// blank slide</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide blankSlide = ppt.createSlide();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// there can be multiple masters each referencing a number of layouts</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// for demonstration purposes we use the first (default) slide master</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlideMaster defaultMaster = ppt.getSlideMasters().get(0);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// title slide</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlideLayout titleLayout = defaultMaster.getLayout(SlideLayout.TITLE);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// fill the placeholders</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide slide1 = ppt.createSlide(titleLayout);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextShape title1 = slide1.getPlaceholder(0);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">title1.setText("First Title");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// title and content</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlideLayout titleBodyLayout = defaultMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide slide2 = ppt.createSlide(titleBodyLayout);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextShape title2 = slide2.getPlaceholder(0);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">title2.setText("Second Title");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextShape body2 = slide2.getPlaceholder(1);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">body2.clearText(); // unset any existing text</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">body2.addNewTextParagraph().addNewTextRun().setText("First paragraph");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">body2.addNewTextParagraph().addNewTextRun().setText("Second paragraph");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">body2.addNewTextParagraph().addNewTextRun().setText("Third paragraph");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="DeleteSlide" id="DeleteSlide"></a><a name="Delete+slide"></a>
<h4>Delete slide</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));
-
- ppt.removeSlide(0); // 0-based index of a slide to be removed
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">ppt.removeSlide(0); // 0-based index of a slide to be removed</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="MoveSlide" id="MoveSlide"></a><a name="Re-order+slides"></a>
<h4>Re-order slides</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));
- List<XSLFSlide> slides = ppt.getSlides();
-
- XSLFSlide thirdSlide = slides.get(2);
- ppt.setSlideOrder(thirdSlide, 0); // move the third slide to the beginning
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">List<XSLFSlide> slides = ppt.getSlides();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide thirdSlide = slides.get(2);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">ppt.setSlideOrder(thirdSlide, 0); // move the third slide to the beginning</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="SlideSize" id="SlideSize"></a><a name="How+to+retrieve+or+change+slide+size"></a>
<h4>How to retrieve or change slide size</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow();
- //retrieve page size. Coordinates are expressed in points (72 dpi)
- java.awt.Dimension pgsize = ppt.getPageSize();
- int pgx = pgsize.width; //slide width in points
- int pgy = pgsize.height; //slide height in points
-
- //set new page size
- ppt.setPageSize(new java.awt.Dimension(1024, 768));
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">//retrieve page size. Coordinates are expressed in points (72 dpi)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">java.awt.Dimension pgsize = ppt.getPageSize();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">int pgx = pgsize.width; //slide width in points</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">int pgy = pgsize.height; //slide height in points</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">//set new page size</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">ppt.setPageSize(new java.awt.Dimension(1024, 768));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="GetShapes" id="GetShapes"></a><a name="How+to+read+shapes+contained+in+a+particular+slide"></a>
<h4>How to read shapes contained in a particular slide</h4>
<p>
The following code demonstrates how to iterate over shapes for each slide.
</p>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));
- // get slides
- for (XSLFSlide slide : ppt.getSlides()) {
- for (XSLFShape sh : slide.getShapes()) {
- // name of the shape
- String name = sh.getShapeName();
-
- // shapes's anchor which defines the position of this shape in the slide
- if (sh instanceof PlaceableShape) {
- java.awt.geom.Rectangle2D anchor = ((PlaceableShape)sh).getAnchor();
- }
-
- if (sh instanceof XSLFConnectorShape) {
- XSLFConnectorShape line = (XSLFConnectorShape) sh;
- // work with Line
- } else if (sh instanceof XSLFTextShape) {
- XSLFTextShape shape = (XSLFTextShape) sh;
- // work with a shape that can hold text
- } else if (sh instanceof XSLFPictureShape) {
- XSLFPictureShape shape = (XSLFPictureShape) sh;
- // work with Picture
- }
- }
- }
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// get slides</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">for (XSLFSlide slide : ppt.getSlides()) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> for (XSLFShape sh : slide.getShapes()) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> // name of the shape</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> String name = sh.getShapeName();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> // shapes's anchor which defines the position of this shape in the slide</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> if (sh instanceof PlaceableShape) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> java.awt.geom.Rectangle2D anchor = ((PlaceableShape)sh).getAnchor();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> }</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> if (sh instanceof XSLFConnectorShape) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> XSLFConnectorShape line = (XSLFConnectorShape) sh;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> // work with Line</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> } else if (sh instanceof XSLFTextShape) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> XSLFTextShape shape = (XSLFTextShape) sh;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> // work with a shape that can hold text</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> } else if (sh instanceof XSLFPictureShape) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> XSLFPictureShape shape = (XSLFPictureShape) sh;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> // work with Picture</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> }</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> }</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">}</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="AddImage" id="AddImage"></a><a name="Add+Image+to+Slide"></a>
<h4>Add Image to Slide</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow();
- XSLFSlide slide = ppt.createSlide();
-
- byte[] pictureData = IOUtils.toByteArray(new FileInputStream("image.png"));
-
- XSLFPictureData pd = ppt.addPicture(pictureData, PictureData.PictureType.PNG);
- XSLFPictureShape pic = slide.createPicture(pd);
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide slide = ppt.createSlide();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">byte[] pictureData = IOUtils.toByteArray(new FileInputStream("image.png"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFPictureData pd = ppt.addPicture(pictureData, PictureData.PictureType.PNG);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFPictureShape pic = slide.createPicture(pd);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="ReadImages" id="ReadImages"></a><a name="Read+Images+contained+within+a+presentation"></a>
<h4>Read Images contained within a presentation</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));
- for(XSLFPictureData data : ppt.getAllPictures()){
- byte[] bytes = data.getData();
- String fileName = data.getFileName();
-
- }
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("slideshow.pptx"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">for(XSLFPictureData data : ppt.getAllPictures()){</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> byte[] bytes = data.getData();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> String fileName = data.getFileName();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">}</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="Text" id="Text"></a><a name="Basic+text+formatting"></a>
<h4>Basic text formatting</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow();
- XSLFSlide slide = ppt.createSlide();
-
- XSLFTextBox shape = slide.createTextBox();
- XSLFTextParagraph p = shape.addNewTextParagraph();
-
- XSLFTextRun r1 = p.addNewTextRun();
- r1.setText("The");
- r1.setFontColor(Color.blue);
- r1.setFontSize(24.);
-
- XSLFTextRun r2 = p.addNewTextRun();
- r2.setText(" quick");
- r2.setFontColor(Color.red);
- r2.setBold(true);
-
- XSLFTextRun r3 = p.addNewTextRun();
- r3.setText(" brown");
- r3.setFontSize(12.);
- r3.setItalic(true);
- r3.setStrikethrough(true);
-
- XSLFTextRun r4 = p.addNewTextRun();
- r4.setText(" fox");
- r4.setUnderline(true);
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide slide = ppt.createSlide();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextBox shape = slide.createTextBox();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextParagraph p = shape.addNewTextParagraph();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextRun r1 = p.addNewTextRun();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r1.setText("The");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r1.setFontColor(Color.blue);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r1.setFontSize(24.);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextRun r2 = p.addNewTextRun();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r2.setText(" quick");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r2.setFontColor(Color.red);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r2.setBold(true);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextRun r3 = p.addNewTextRun();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r3.setText(" brown");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r3.setFontSize(12.);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r3.setItalic(true);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r3.setStrikethrough(true);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextRun r4 = p.addNewTextRun();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r4.setText(" fox");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r4.setUnderline(true);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="Hyperlinks" id="Hyperlinks"></a><a name="How+to+create+a+hyperlink"></a>
<h4>How to create a hyperlink</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow();
- XSLFSlide slide = ppt.createSlide();
-
- // assign a hyperlink to a text run
- XSLFTextBox shape = slide.createTextBox();
- XSLFTextRun r = shape.addNewTextParagraph().addNewTextRun();
- r.setText("Apache POI");
- XSLFHyperlink link = r.createHyperlink();
- link.setAddress("http://poi.apache.org");
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFSlide slide = ppt.createSlide();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">// assign a hyperlink to a text run</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextBox shape = slide.createTextBox();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFTextRun r = shape.addNewTextParagraph().addNewTextRun();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">r.setText("Apache POI");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XSLFHyperlink link = r.createHyperlink();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">link.setAddress("http://poi.apache.org");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<a name="PPTX2PNG" id="PPTX2PNG"></a><a name="PPTX2PNG+is+an+application+that+converts+each+slide+of+a+.pptx+slideshow+into+a+PNG+image"></a>
<h4>PPTX2PNG is an application that converts each slide of a .pptx slideshow into a PNG image</h4>
-<pre class="code">
-Usage: PPTX2PNG [options] <pptx file>
-Options:
- -scale <float> scale factor (default is 1.0)
- -slide <integer> 1-based index of a slide to render. Default is to render all slides.
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">Usage: PPTX2PNG [options] <pptx file></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">Options:</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> -scale <float> scale factor (default is 1.0)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> -slide <integer> 1-based index of a slide to render. Default is to render all slides.</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<p>How it works:</p>
<p>
The XSLFSlide object implements a draw(Graphics2D graphics) method that recursively paints all shapes
in the slide into the supplied graphics canvas:
</p>
-<pre class="code">
- slide.draw(graphics);
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">slide.draw(graphics);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
<p>
where graphics is a class implementing java.awt.Graphics2D. In PPTX2PNG the graphic canvas is derived from
java.awt.image.BufferedImage, i.e. the destination is an image in memory, but in general case you can pass
@@ -564,23 +916,59 @@ Options:
</p>
<a name="Merge" id="Merge"></a><a name="Merge+multiple+presentations+together"></a>
<h4>Merge multiple presentations together</h4>
-<pre class="code">
- XMLSlideShow ppt = new XMLSlideShow();
- String[] inputs = {"presentations1.pptx", "presentation2.pptx"};
- for(String arg : inputs){
- FileInputStream is = new FileInputStream(arg);
- XMLSlideShow src = new XMLSlideShow(is);
- is.close();
-
- for(XSLFSlide srcSlide : src.getSlides()){
- ppt.createSlide().importContent(srcSlide);
- }
- }
-
- FileOutputStream out = new FileOutputStream("merged.pptx");
- ppt.write(out);
- out.close();
- </pre>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">XMLSlideShow ppt = new XMLSlideShow();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">String[] inputs = {"presentations1.pptx", "presentation2.pptx"};</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">for(String arg : inputs){</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> FileInputStream is = new FileInputStream(arg);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> XMLSlideShow src = new XMLSlideShow(is);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> is.close();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> for(XSLFSlide srcSlide : src.getSlides()){</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> ppt.createSlide().importContent(srcSlide);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> }</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">}</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">FileOutputStream out = new FileOutputStream("merged.pptx");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">ppt.write(out);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">out.close();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"> </span>
+</div>
+</div>
</div>
<p align="right">
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org