* Fetch the text runs that are contained within this block of text\r
*/\r
List<T> getTextRuns();\r
-}\r
+\r
+ /**\r
+ * Convenience method to determine if this text paragraph is part of\r
+ * the slide header or footer\r
+ * \r
+ * @return true if this paragraph is part of a header or footer placeholder\r
+ * \r
+ * @since POI 3.15-beta2\r
+ */\r
+ boolean isHeaderOrFooter();\r
+}
\ No newline at end of file
\r
/* package */ CTTextParagraphProperties getDefaultMasterStyle(){\r
CTPlaceholder ph = _shape.getCTPlaceholder();\r
- String defaultStyleSelector; \r
+ String defaultStyleSelector; \r
switch(ph == null ? -1 : ph.getType().intValue()) {\r
case STPlaceholderType.INT_TITLE:\r
case STPlaceholderType.INT_CTR_TITLE:\r
_runs.clear();\r
}\r
}\r
-}\r
+\r
+ @Override\r
+ public boolean isHeaderOrFooter() {\r
+ CTPlaceholder ph = _shape.getCTPlaceholder();\r
+ int phId = (ph == null ? -1 : ph.getType().intValue());\r
+ switch (phId) {\r
+ case STPlaceholderType.INT_SLD_NUM:\r
+ case STPlaceholderType.INT_DT:\r
+ case STPlaceholderType.INT_FTR:\r
+ case STPlaceholderType.INT_HDR:\r
+ return true;\r
+ default:\r
+ return false;\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+/*\r
+ * ====================================================================\r
+ * Licensed to the Apache Software Foundation (ASF) under one or more\r
+ * contributor license agreements. See the NOTICE file distributed with\r
+ * this work for additional information regarding copyright ownership.\r
+ * The ASF licenses this file to You under the Apache License, Version 2.0\r
+ * (the "License"); you may not use this file except in compliance with\r
+ * the License. You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ====================================================================\r
+ */\r
+\r
+package org.apache.poi.sl;\r
+\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertFalse;\r
+import static org.junit.Assert.assertNull;\r
+import static org.junit.Assert.assertTrue;\r
+import static org.apache.poi.sl.TestTable.openSampleSlideshow;\r
+\r
+import java.io.IOException;\r
+import java.util.List;\r
+\r
+import org.apache.poi.hslf.model.HeadersFooters;\r
+import org.apache.poi.hslf.usermodel.HSLFSlide;\r
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;\r
+import org.apache.poi.hslf.usermodel.HSLFTextParagraph;\r
+import org.apache.poi.sl.usermodel.Shape;\r
+import org.apache.poi.sl.usermodel.Slide;\r
+import org.apache.poi.sl.usermodel.SlideShow;\r
+import org.apache.poi.sl.usermodel.TextParagraph;\r
+import org.apache.poi.sl.usermodel.TextShape;\r
+import org.junit.Test;\r
+\r
+public class TestHeadersFooters {\r
+ @Test\r
+ public void bug58144() throws IOException {\r
+ SlideShow<?,?> ppt1 = openSampleSlideshow("bug58144-headers-footers-2003.ppt");\r
+ HSLFSlide sl1 = (HSLFSlide)ppt1.getSlides().get(0);\r
+ HeadersFooters hfs1 = sl1.getHeadersFooters();\r
+ assertNull(hfs1.getHeaderText());\r
+ assertEquals("Confidential", hfs1.getFooterText());\r
+ List<List<HSLFTextParagraph>> llp1 = sl1.getTextParagraphs();\r
+ assertEquals("Test", HSLFTextParagraph.getText(llp1.get(0)));\r
+ assertFalse(llp1.get(0).get(0).isHeaderOrFooter());\r
+ ppt1.close();\r
+\r
+ String ppt2007s[] = {\r
+ "bug58144-headers-footers-2007.ppt", "bug58144-headers-footers-2007.pptx"\r
+ };\r
+ \r
+ for (String pptName : ppt2007s) {\r
+ SlideShow<?,?> ppt2 = openSampleSlideshow(pptName);\r
+ Slide<?,?> sl2 = ppt2.getSlides().get(0);\r
+ \r
+ if (ppt2 instanceof HSLFSlideShow) {\r
+ HeadersFooters hfs2 = ((HSLFSlide)sl2).getHeadersFooters();\r
+ assertNull(hfs2.getHeaderText());\r
+ assertEquals("Slide footer", hfs2.getFooterText());\r
+ }\r
+ \r
+ List<? extends Shape<?,?>> shapes = sl2.getShapes();\r
+ TextShape<?,?> ts0 = (TextShape<?,?>)shapes.get(0);\r
+ assertEquals("Test file", ts0.getText());\r
+ TextShape<?,?> ts1 = (TextShape<?,?>)shapes.get(1);\r
+ assertEquals("Has some text in the headers and footers", ts1.getText());\r
+ TextShape<?,?> ts2 = (TextShape<?,?>)shapes.get(2);\r
+ assertEquals("Slide footer", ts2.getText());\r
+ List<? extends TextParagraph<?,?,?>> ltp2 = ts2.getTextParagraphs();\r
+ assertTrue(ltp2.get(0).isHeaderOrFooter());\r
+ ppt2.close();\r
+ }\r
+ }\r
+}\r
package org.apache.poi.hslf.model;
-import org.apache.poi.hslf.record.*;
-import org.apache.poi.hslf.usermodel.*;
+import org.apache.poi.hslf.record.CString;
+import org.apache.poi.hslf.record.Document;
+import org.apache.poi.hslf.record.HeadersFootersAtom;
+import org.apache.poi.hslf.record.HeadersFootersContainer;
+import org.apache.poi.hslf.record.OEPlaceholderAtom;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.SheetContainer;
+import org.apache.poi.hslf.usermodel.HSLFSheet;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextShape;
/**
* Header / Footer settings.
*
* You can get these on slides, or across all notes
- *
- * @author Yegor Kozlov
*/
public final class HeadersFooters {
- private HeadersFootersContainer _container;
- private boolean _newRecord;
- private HSLFSlideShow _ppt;
- private HSLFSheet _sheet;
- private boolean _ppt2007;
+ private final HeadersFootersContainer _container;
+ private final HSLFSheet _sheet;
+ private final boolean _ppt2007;
- public HeadersFooters(HeadersFootersContainer rec, HSLFSlideShow ppt, boolean newRecord, boolean isPpt2007){
- _container = rec;
- _newRecord = newRecord;
- _ppt = ppt;
- _ppt2007 = isPpt2007;
+ public HeadersFooters(HSLFSlideShow ppt, short headerFooterType) {
+ this(ppt.getSlideMasters().get(0), headerFooterType);
}
- public HeadersFooters(HeadersFootersContainer rec, HSLFSheet sheet, boolean newRecord, boolean isPpt2007){
- _container = rec;
- _newRecord = newRecord;
+ public HeadersFooters(HSLFSheet sheet, short headerFooterType) {
_sheet = sheet;
- _ppt2007 = isPpt2007;
+
+ @SuppressWarnings("resource")
+ HSLFSlideShow ppt = _sheet.getSlideShow();
+ Document doc = ppt.getDocumentRecord();
+
+ // detect if this ppt was saved in Office2007
+ String tag = ppt.getSlideMasters().get(0).getProgrammableTag();
+ _ppt2007 = "___PPT12".equals(tag);
+
+ SheetContainer sc = _sheet.getSheetContainer();
+ HeadersFootersContainer hdd = (HeadersFootersContainer)sc.findFirstOfType(RecordTypes.HeadersFooters.typeID);
+ // boolean ppt2007 = sc.findFirstOfType(RecordTypes.RoundTripContentMasterId.typeID) != null;
+
+ if (hdd == null) {
+ for (Record ch : doc.getChildRecords()) {
+ if (ch instanceof HeadersFootersContainer
+ && ((HeadersFootersContainer) ch).getOptions() == headerFooterType) {
+ hdd = (HeadersFootersContainer) ch;
+ break;
+ }
+ }
+ }
+
+ if (hdd == null) {
+ hdd = new HeadersFootersContainer(headerFooterType);
+ Record lst = doc.findFirstOfType(RecordTypes.List.typeID);
+ doc.addChildAfter(hdd, lst);
+ }
+ _container = hdd;
}
/**
* @param text headers's text
*/
public void setHeaderText(String text){
- if(_newRecord) attach();
-
setHeaderVisible(true);
CString cs = _container.getHeaderAtom();
- if(cs == null) cs = _container.addHeaderAtom();
+ if (cs == null) {
+ cs = _container.addHeaderAtom();
+ }
cs.setText(text);
}
* @param text footers's text
*/
public void setFootersText(String text){
- if(_newRecord) attach();
-
setFooterVisible(true);
CString cs = _container.getFooterAtom();
- if(cs == null) cs = _container.addFooterAtom();
+ if (cs == null) {
+ cs = _container.addFooterAtom();
+ }
cs.setText(text);
}
* @param text custom user date
*/
public void setDateTimeText(String text){
- if(_newRecord) attach();
-
setUserDateVisible(true);
setDateTimeVisible(true);
CString cs = _container.getUserDateAtom();
- if(cs == null) cs = _container.addUserDateAtom();
+ if (cs == null) {
+ cs = _container.addUserDateAtom();
+ }
cs.setText(text);
}
* whether the footer text is displayed.
*/
public void setFooterVisible(boolean flag){
- if(_newRecord) attach();
- _container.getHeadersFootersAtom().setFlag(HeadersFootersAtom.fHasFooter, flag);
+ setFlag(HeadersFootersAtom.fHasFooter, flag);
}
/**
* whether the header text is displayed.
*/
public void setHeaderVisible(boolean flag){
- if(_newRecord) attach();
- _container.getHeadersFootersAtom().setFlag(HeadersFootersAtom.fHasHeader, flag);
+ setFlag(HeadersFootersAtom.fHasHeader, flag);
}
/**
* whether the date is displayed in the footer.
*/
public void setDateTimeVisible(boolean flag){
- if(_newRecord) attach();
- _container.getHeadersFootersAtom().setFlag(HeadersFootersAtom.fHasDate, flag);
+ setFlag(HeadersFootersAtom.fHasDate, flag);
}
/**
* whether the date is displayed in the footer.
*/
public void setUserDateVisible(boolean flag){
- if(_newRecord) attach();
- _container.getHeadersFootersAtom().setFlag(HeadersFootersAtom.fHasUserDate, flag);
+ setFlag(HeadersFootersAtom.fHasUserDate, flag);
}
/**
* whether the slide number is displayed in the footer.
*/
public void setSlideNumberVisible(boolean flag){
- if(_newRecord) attach();
- _container.getHeadersFootersAtom().setFlag(HeadersFootersAtom.fHasSlideNumber, flag);
+ setFlag(HeadersFootersAtom.fHasSlideNumber, flag);
}
/**
* @param formatId an integer that specifies the format ID to be used to style the datetime.
*/
public void setDateTimeFormat(int formatId){
- if(_newRecord) attach();
_container.getHeadersFootersAtom().setFormatId(formatId);
}
- /**
- * Attach this HeadersFootersContainer to the parent Document record
- */
- private void attach(){
- Document doc = _ppt.getDocumentRecord();
- Record[] ch = doc.getChildRecords();
- Record lst = null;
- for (int i=0; i < ch.length; i++){
- if(ch[i].getRecordType() == RecordTypes.List.typeID){
- lst = ch[i];
- break;
- }
- }
- doc.addChildAfter(_container, lst);
- _newRecord = false;
- }
-
private boolean isVisible(int flag, int placeholderId){
boolean visible;
if(_ppt2007){
- HSLFSheet master = _sheet != null ? _sheet : _ppt.getSlideMasters().get(0);
- HSLFTextShape placeholder = master.getPlaceholder(placeholderId);
+ HSLFTextShape placeholder = _sheet.getPlaceholder(placeholderId);
visible = placeholder != null && placeholder.getText() != null;
} else {
visible = _container.getHeadersFootersAtom().getFlag(flag);
private String getPlaceholderText(int placeholderId, CString cs){
String text = null;
- if(_ppt2007){
- HSLFSheet master = _sheet != null ? _sheet : _ppt.getSlideMasters().get(0);
- HSLFTextShape placeholder = master.getPlaceholder(placeholderId);
- if(placeholder != null) text = placeholder.getText();
+ if (_ppt2007) {
+ HSLFTextShape placeholder = _sheet.getPlaceholder(placeholderId);
+ if (placeholder != null) {
+ text = placeholder.getText();
+ }
- //default text in master placeholders is not visible
- if("*".equals(text)) text = null;
+ // default text in master placeholders is not visible
+ if("*".equals(text)) {
+ text = null;
+ }
} else {
text = cs == null ? null : cs.getText();
}
return text;
}
+ private void setFlag(int type, boolean flag) {
+ _container.getHeadersFootersAtom().setFlag(type, flag);
+ }
}
* given type. Does not descend.
*/
public Record findFirstOfType(long type) {
- for(int i=0; i<_children.length; i++) {
- if(_children[i].getRecordType() == type) {
- return _children[i];
+ for (Record r : _children) {
+ if (r.getRecordType() == type) {
+ return r;
}
}
return null;
import org.apache.poi.hslf.record.Comment2000;
import org.apache.poi.hslf.record.EscherTextboxWrapper;
import org.apache.poi.hslf.record.HeadersFootersContainer;
-import org.apache.poi.hslf.record.Record;
import org.apache.poi.hslf.record.RecordContainer;
import org.apache.poi.hslf.record.RecordTypes;
import org.apache.poi.hslf.record.SSSlideInfoAtom;
*
* @return Header / Footer settings for this slide
*/
- public HeadersFooters getHeadersFooters(){
- HeadersFootersContainer hdd = null;
- Record[] ch = getSheetContainer().getChildRecords();
- boolean ppt2007 = false;
- for (int i = 0; i < ch.length; i++) {
- if(ch[i] instanceof HeadersFootersContainer){
- hdd = (HeadersFootersContainer)ch[i];
- } else if (ch[i].getRecordType() == RecordTypes.RoundTripContentMasterId.typeID){
- ppt2007 = true;
- }
- }
- boolean newRecord = false;
- if(hdd == null && !ppt2007) {
- return getSlideShow().getSlideHeadersFooters();
- }
- if(hdd == null) {
- hdd = new HeadersFootersContainer(HeadersFootersContainer.SlideHeadersFootersContainer);
- newRecord = true;
- }
- return new HeadersFooters(hdd, this, newRecord, ppt2007);
+ public HeadersFooters getHeadersFooters(){
+ return new HeadersFooters(this, HeadersFootersContainer.SlideHeadersFootersContainer);
}
protected void onAddTextShape(HSLFTextShape shape) {
import java.util.List;
import java.util.Map;
-import org.apache.poi.hslf.record.MainMaster;
import org.apache.poi.ddf.EscherBSERecord;
import org.apache.poi.ddf.EscherContainerRecord;
import org.apache.poi.ddf.EscherOptRecord;
import org.apache.poi.hslf.record.ExControl;
import org.apache.poi.hslf.record.ExEmbed;
import org.apache.poi.hslf.record.ExEmbedAtom;
-import org.apache.poi.hslf.record.ExHyperlink;
-import org.apache.poi.hslf.record.ExHyperlinkAtom;
import org.apache.poi.hslf.record.ExMCIMovie;
import org.apache.poi.hslf.record.ExObjList;
import org.apache.poi.hslf.record.ExObjListAtom;
import org.apache.poi.hslf.record.FontCollection;
import org.apache.poi.hslf.record.FontEntityAtom;
import org.apache.poi.hslf.record.HeadersFootersContainer;
+import org.apache.poi.hslf.record.MainMaster;
import org.apache.poi.hslf.record.Notes;
import org.apache.poi.hslf.record.PersistPtrHolder;
import org.apache.poi.hslf.record.PositionDependentRecord;
* @return Header / Footer settings for slides
*/
public HeadersFooters getSlideHeadersFooters() {
- // detect if this ppt was saved in Office2007
- String tag = getSlideMasters().get(0).getProgrammableTag();
- boolean ppt2007 = "___PPT12".equals(tag);
-
- HeadersFootersContainer hdd = null;
- for (Record ch : _documentRecord.getChildRecords()) {
- if (ch instanceof HeadersFootersContainer
- && ((HeadersFootersContainer) ch).getOptions() == HeadersFootersContainer.SlideHeadersFootersContainer) {
- hdd = (HeadersFootersContainer) ch;
- break;
- }
- }
- boolean newRecord = false;
- if (hdd == null) {
- hdd = new HeadersFootersContainer(HeadersFootersContainer.SlideHeadersFootersContainer);
- newRecord = true;
- }
- return new HeadersFooters(hdd, this, newRecord, ppt2007);
+ return new HeadersFooters(this, HeadersFootersContainer.SlideHeadersFootersContainer);
}
/**
* @return Header / Footer settings for notes
*/
public HeadersFooters getNotesHeadersFooters() {
- // detect if this ppt was saved in Office2007
- String tag = getSlideMasters().get(0).getProgrammableTag();
- boolean ppt2007 = "___PPT12".equals(tag);
-
- HeadersFootersContainer hdd = null;
- for (Record ch : _documentRecord.getChildRecords()) {
- if (ch instanceof HeadersFootersContainer
- && ((HeadersFootersContainer) ch).getOptions() == HeadersFootersContainer.NotesHeadersFootersContainer) {
- hdd = (HeadersFootersContainer) ch;
- break;
- }
- }
- boolean newRecord = false;
- if (hdd == null) {
- hdd = new HeadersFootersContainer(HeadersFootersContainer.NotesHeadersFootersContainer);
- newRecord = true;
- }
- if (ppt2007 && !_notes.isEmpty()) {
- return new HeadersFooters(hdd, _notes.get(0), newRecord, ppt2007);
- }
- return new HeadersFooters(hdd, this, newRecord, ppt2007);
+ if (_notes.isEmpty()) {
+ return new HeadersFooters(this, HeadersFootersContainer.NotesHeadersFootersContainer);
+ } else {
+ return new HeadersFooters(_notes.get(0), HeadersFootersContainer.NotesHeadersFootersContainer);
+ }
}
/**
import org.apache.poi.hslf.record.FontCollection;\r
import org.apache.poi.hslf.record.InteractiveInfo;\r
import org.apache.poi.hslf.record.MasterTextPropAtom;\r
+import org.apache.poi.hslf.record.OEPlaceholderAtom;\r
import org.apache.poi.hslf.record.OutlineTextRefAtom;\r
import org.apache.poi.hslf.record.PPDrawing;\r
import org.apache.poi.hslf.record.Record;\r
import org.apache.poi.hslf.record.RecordContainer;\r
import org.apache.poi.hslf.record.RecordTypes;\r
+import org.apache.poi.hslf.record.RoundTripHFPlaceholder12;\r
import org.apache.poi.hslf.record.SlideListWithText;\r
import org.apache.poi.hslf.record.SlidePersistAtom;\r
import org.apache.poi.hslf.record.StyleTextProp9Atom;\r
\r
public TextRulerAtom getTextRuler() {\r
return _ruler;\r
-\r
}\r
\r
public TextRulerAtom createTextRuler() {\r
}\r
return -1;\r
}\r
+\r
+ /**\r
+ * {@inheritDoc}\r
+ * \r
+ * @see RoundTripHFPlaceholder12\r
+ */\r
+ @Override\r
+ public boolean isHeaderOrFooter() {\r
+ HSLFShape s = getParentShape();\r
+ if (s == null) {\r
+ return false;\r
+ }\r
+ RoundTripHFPlaceholder12 hfPl = s.getClientDataRecord(RecordTypes.RoundTripHFPlaceholder12.typeID);\r
+ if (hfPl == null) {\r
+ return false;\r
+ }\r
+\r
+ int plId = hfPl.getPlaceholderId();\r
+ switch (plId) {\r
+ case OEPlaceholderAtom.MasterDate:\r
+ case OEPlaceholderAtom.MasterSlideNumber:\r
+ case OEPlaceholderAtom.MasterFooter:\r
+ case OEPlaceholderAtom.MasterHeader:\r
+ return true;\r
+ default:\r
+ return false;\r
+ }\r
+ }\r
}
\ No newline at end of file
package org.apache.poi.hslf.model;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.List;
import org.apache.poi.POIDataSamples;
+import org.apache.poi.hslf.HSLFTestDataSamples;
import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.junit.Test;
private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
@Test
- public void testRead() throws Exception {
- HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("headers_footers.ppt"));
+ public void testRead() throws IOException {
+ InputStream is = _slTests.openResourceAsStream("headers_footers.ppt");
+ HSLFSlideShow ppt = new HSLFSlideShow(is);
+ is.close();
HeadersFooters slideHdd = ppt.getSlideHeadersFooters();
assertTrue(slideHdd.isFooterVisible());
assertEquals("per-slide footer", hd2.getFooterText());
assertEquals(true, hd2.isUserDateVisible());
assertEquals("custom date format", hd2.getDateTimeText());
+
+ ppt.close();
}
/**
*/
@Test
public void testReadNoHeadersFooters() throws Exception {
- HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+ InputStream is = _slTests.openResourceAsStream("basic_test_ppt_file.ppt");
+ HSLFSlideShow ppt = new HSLFSlideShow(is);
+ is.close();
HeadersFooters slideHdd = ppt.getSlideHeadersFooters();
assertFalse(slideHdd.isFooterVisible());
assertFalse(hd1.isUserDateVisible());
assertNull(hd1.getDateTimeText());
}
+
+ ppt.close();
}
/**
* Test extraction of headers / footers from PPTs saved in Office 2007
*/
@Test
- public void testRead2007() throws Exception {
- HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("headers_footers_2007.ppt"));
+ public void testRead2007() throws IOException {
+ InputStream is = _slTests.openResourceAsStream("headers_footers_2007.ppt");
+ HSLFSlideShow ppt = new HSLFSlideShow(is);
+ is.close();
HeadersFooters slideHdd = ppt.getSlideHeadersFooters();
assertTrue(slideHdd.isFooterVisible());
assertTrue(hd3.isUserDateVisible());
assertTrue(hd3.isDateTimeVisible());
assertEquals("Wednesday, August 06, 2008", hd3.getDateTimeText());
+
+ ppt.close();
}
@Test
- public void testCreateSlideFooters() throws Exception {
- HSLFSlideShow ppt = new HSLFSlideShow();
- HeadersFooters hdd = ppt.getSlideHeadersFooters();
+ public void testCreateSlideFooters() throws IOException {
+ HSLFSlideShow ppt1 = new HSLFSlideShow();
+ HeadersFooters hdd = ppt1.getSlideHeadersFooters();
hdd.setFootersText("My slide footer");
hdd.setSlideNumberVisible(true);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ppt.write(out);
- byte[] b = out.toByteArray();
-
- HSLFSlideShow ppt2 = new HSLFSlideShow(new ByteArrayInputStream(b));
+ HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1);
HeadersFooters hdd2 = ppt2.getSlideHeadersFooters();
assertTrue(hdd2.isSlideNumberVisible());
assertTrue(hdd2.isFooterVisible());
assertEquals("My slide footer", hdd2.getFooterText());
+
+ ppt2.close();
+ ppt1.close();
}
@Test
- public void testCreateNotesFooters() throws Exception {
- HSLFSlideShow ppt = new HSLFSlideShow();
- HeadersFooters hdd = ppt.getNotesHeadersFooters();
+ public void testCreateNotesFooters() throws IOException {
+ HSLFSlideShow ppt1 = new HSLFSlideShow();
+ HeadersFooters hdd = ppt1.getNotesHeadersFooters();
hdd.setFootersText("My notes footer");
hdd.setHeaderText("My notes header");
hdd.setSlideNumberVisible(true);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ppt.write(out);
- byte[] b = out.toByteArray();
-
- HSLFSlideShow ppt2 = new HSLFSlideShow(new ByteArrayInputStream(b));
+ HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1);
HeadersFooters hdd2 = ppt2.getNotesHeadersFooters();
assertTrue(hdd2.isSlideNumberVisible());
assertTrue(hdd2.isFooterVisible());
assertEquals("My notes footer", hdd2.getFooterText());
assertTrue(hdd2.isHeaderVisible());
assertEquals("My notes header", hdd2.getHeaderText());
+
+ ppt2.close();
+ ppt1.close();
}
}