public HeadersFooters(HSLFSlideShow ppt, short headerFooterType) { this(ppt.getSlideMasters().get(0), headerFooterType); }
/** * Returns the slide master for this title master. */ @Override public HSLFMasterSheet getMasterSheet(){ SlideAtom sa = ((org.apache.poi.hslf.record.Slide)getSheetContainer()).getSlideAtom(); int masterId = sa.getMasterID(); for (HSLFSlideMaster sm : getSlideShow().getSlideMasters()) { if (masterId == sm._getSheetNumber()) { return sm; } } return null; } }
public HeadersFooters(HSLFSheet sheet, short headerFooterType) { _sheet = sheet; @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 = _ppt2007tag.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; }
@Override public void write(OutputStream out) throws IOException { // check for text paragraph modifications for (HSLFSlide sl : getSlides()) { writeDirtyParagraphs(sl); } for (HSLFSlideMaster sl : getSlideMasters()) { boolean isDirty = false; for (List<HSLFTextParagraph> paras : sl.getTextParagraphs()) { for (HSLFTextParagraph p : paras) { isDirty |= p.isDirty(); } } if (isDirty) { for (TxMasterStyleAtom sa : sl.getTxMasterStyleAtoms()) { if (sa != null) { // not all master style atoms are set - index 3 is typically null sa.updateStyles(); } } } } _hslfSlideShow.write(out); }
/** * Returns master sheet associated with this slide. * It can be either SlideMaster or TitleMaster objects. * * @return the master sheet associated with this slide. */ @Override public HSLFMasterSheet getMasterSheet(){ int masterId = getSlideRecord().getSlideAtom().getMasterID(); for (HSLFSlideMaster sm : getSlideShow().getSlideMasters()) { if (masterId == sm._getSheetNumber()) { return sm; } } for (HSLFTitleMaster tm : getSlideShow().getTitleMasters()) { if (masterId == tm._getSheetNumber()) { return tm; } } return null; }