Package org.apache.poi.hslf.model

Examples of org.apache.poi.hslf.model.Slide


    }

    SlideListWithText slwt = _documentRecord.getSlideSlideListWithText();
    SlideAtomsSet[] sas = slwt.getSlideAtomsSets();

    Slide removedSlide = null;
    ArrayList<Record> records = new ArrayList<Record>();
    ArrayList<SlideAtomsSet> sa = new ArrayList<SlideAtomsSet>();
    ArrayList<Slide> sl = new ArrayList<Slide>();

    ArrayList<Notes> nt = new ArrayList<Notes>();
    for (Notes notes : getNotes())
      nt.add(notes);

    for (int i = 0, num = 0; i < _slides.length; i++) {
      if (i != index) {
        sl.add(_slides[i]);
        sa.add(sas[i]);
        _slides[i].setSlideNumber(num++);
        records.add(sas[i].getSlidePersistAtom());
        records.addAll(Arrays.asList(sas[i].getSlideRecords()));
      } else {
        removedSlide = _slides[i];
        nt.remove(_slides[i].getNotesSheet());
      }
    }
    if (sa.size() == 0) {
      _documentRecord.removeSlideListWithText(slwt);
    } else {
      slwt.setSlideAtomsSets(sa.toArray(new SlideAtomsSet[sa.size()]));
      slwt.setChildRecord(records.toArray(new Record[records.size()]));
    }
    _slides = sl.toArray(new Slide[sl.size()]);

    // if the removed slide had notes - remove references to them too

    if (removedSlide != null) {
      int notesId = removedSlide.getSlideRecord().getSlideAtom().getNotesID();
      if (notesId != 0) {
        SlideListWithText nslwt = _documentRecord.getNotesSlideListWithText();
        records = new ArrayList<Record>();
        ArrayList<SlideAtomsSet> na = new ArrayList<SlideAtomsSet>();
        for (SlideAtomsSet ns : nslwt.getSlideAtomsSets()) {
View Full Code Here


    // Add this new SlidePersistAtom to the SlideListWithText
    slist.addSlidePersistAtom(sp);

    // Create a new Slide
    Slide slide = new Slide(sp.getSlideIdentifier(), sp.getRefID(), _slides.length + 1);
    slide.setSlideShow(this);
    slide.onCreate();

    // Add in to the list of Slides
    Slide[] s = new Slide[_slides.length + 1];
    System.arraycopy(_slides, 0, s, 0, _slides.length);
    s[_slides.length] = slide;
    _slides = s;
    logger.log(POILogger.INFO, "Added slide " + _slides.length + " with ref " + sp.getRefID()
        + " and identifier " + sp.getSlideIdentifier());

    // Add the core records for this new Slide to the record tree
    org.apache.poi.hslf.record.Slide slideRecord = slide.getSlideRecord();
    int slideRecordPos = _hslfSlideShow.appendRootLevelRecord(slideRecord);
    _records = _hslfSlideShow.getRecords();

    // Add the new Slide into the PersistPtr stuff
    int offset = 0;
    int slideOffset = 0;
    PersistPtrHolder ptr = null;
    UserEditAtom usr = null;
    for (int i = 0; i < _records.length; i++) {
      Record record = _records[i];
      ByteArrayOutputStream out = new ByteArrayOutputStream();
      try {
        record.writeOut(out);
      } catch (IOException e) {
        throw new HSLFException(e);
      }

      // Grab interesting records as they come past
      if (_records[i].getRecordType() == RecordTypes.PersistPtrIncrementalBlock.typeID) {
        ptr = (PersistPtrHolder) _records[i];
      }
      if (_records[i].getRecordType() == RecordTypes.UserEditAtom.typeID) {
        usr = (UserEditAtom) _records[i];
      }

      if (i == slideRecordPos) {
        slideOffset = offset;
      }
      offset += out.size();
    }

    // persist ID is UserEditAtom.maxPersistWritten + 1
    int psrId = usr.getMaxPersistWritten() + 1;
    sp.setRefID(psrId);
    slideRecord.setSheetId(psrId);

    // Last view is now of the slide
    usr.setLastViewType((short) UserEditAtom.LAST_VIEW_SLIDE_VIEW);
    usr.setMaxPersistWritten(psrId); // increment the number of persit
                     // objects

    // Add the new slide into the last PersistPtr
    // (Also need to tell it where it is)
    slideRecord.setLastOnDiskOffset(slideOffset);
    ptr.addSlideLookup(sp.getRefID(), slideOffset);
    logger.log(POILogger.INFO, "New slide ended up at " + slideOffset);

    slide.setMasterSheet(_masters[0]);
    // All done and added
    return slide;
  }
View Full Code Here

    public void test43781 () throws Exception {
        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("43781.ppt"));

        assertTrue("No Exceptions while reading file", true);

        Slide slide = ppt.getSlides()[0];
        TextRun[] tr1 = slide.getTextRuns();

        List<TextRun> lst = new ArrayList<TextRun>();
        Shape[] shape = slide.getShapes();
        for (int i = 0; i < shape.length; i++) {
            if( shape[i] instanceof TextShape){
                TextRun textRun = ((TextShape)shape[i]).getTextRun();
                if(textRun != null) {
                    lst.add(textRun);
View Full Code Here

     * Bug 44296: HSLF Not Extracting Slide Background Image
     */
    public void test44296  () throws Exception {
        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("44296.ppt"));

        Slide slide = ppt.getSlides()[0];

        Background b = slide.getBackground();
        Fill f = b.getFill();
        assertEquals(Fill.FILL_PICTURE, f.getFillType());

        PictureData pict = f.getPictureData();
        assertNotNull(pict);
View Full Code Here

     * Bug 41071: Will not extract text from Powerpoint TextBoxes
     */
    public void test41071() throws Exception {
        SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("41071.ppt"));

        Slide slide = ppt.getSlides()[0];
        Shape[] sh = slide.getShapes();
        assertEquals(1, sh.length);
        assertTrue(sh[0] instanceof TextShape);
        TextShape tx = (TextShape)sh[0];
        assertEquals("Fundera, planera och involvera.", tx.getTextRun().getText());

        TextRun[] run = slide.getTextRuns();
        assertEquals(1, run.length);
        assertEquals("Fundera, planera och involvera.", run[0].getText());
    }
View Full Code Here

            if (notesPos != null) notes = _notes[notesPos.intValue()];
            else logger.log(POILogger.ERROR, "Notes not found for noteId=" + noteId);
        }

    // Now, build our slide
    _slides[i] = new Slide(slidesRecords[i], notes, sas, slideIdentifier, (i+1));
    _slides[i].setSlideShow(this);
  }
  }
View Full Code Here

      // Add this new SlidePersistAtom to the SlideListWithText
      slist.addSlidePersistAtom(sp);
     
     
      // Create a new Slide
      Slide slide = new Slide(sp.getSlideIdentifier(), sp.getRefID(), _slides.length+1);
      // Add in to the list of Slides
      Slide[] s = new Slide[_slides.length+1];
      System.arraycopy(_slides, 0, s, 0, _slides.length);
      s[_slides.length] = slide;
      _slides = s;
      logger.log(POILogger.INFO, "Added slide " + _slides.length + " with ref " + sp.getRefID() + " and identifier " + sp.getSlideIdentifier());
     
      // Add the core records for this new Slide to the record tree
      org.apache.poi.hslf.record.Slide slideRecord = slide.getSlideRecord();
      slideRecord.setSheetId(sp.getRefID());
      int slideRecordPos = _hslfSlideShow.appendRootLevelRecord(slideRecord);
      _records = _hslfSlideShow.getRecords();

      // Add the new Slide into the PersistPtr stuff
      int offset = 0;
      int slideOffset = 0;
      PersistPtrHolder ptr = null;
      UserEditAtom usr = null;
      for (int i = 0; i < _records.length; i++) {
        Record record = _records[i];
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        record.writeOut(out);
       
        // Grab interesting records as they come past
        if(_records[i].getRecordType() == RecordTypes.PersistPtrIncrementalBlock.typeID){
          ptr = (PersistPtrHolder)_records[i];
        }
        if(_records[i].getRecordType() == RecordTypes.UserEditAtom.typeID) {
          usr = (UserEditAtom)_records[i];
        }
       
        if(i == slideRecordPos) {
          slideOffset = offset;
        }
        offset += out.size();
      }
     
    // Add the new slide into the last PersistPtr
      // (Also need to tell it where it is)
    slideRecord.setLastOnDiskOffset(slideOffset);
    ptr.addSlideLookup(sp.getRefID(), slideOffset);
    logger.log(POILogger.INFO, "New slide ended up at " + slideOffset);

    // Last view is now of the slide
      usr.setLastViewType((short)UserEditAtom.LAST_VIEW_SLIDE_VIEW);
      usr.setMaxPersistWritten(_highestSheetId);

      // All done and added
      slide.setSlideShow(this);
      return slide;
  }
View Full Code Here

            if (notesPos != null) notes = _notes[notesPos.intValue()];
            else logger.log(POILogger.ERROR, "Notes not found for noteId=" + noteId);
        }

    // Now, build our slide
    _slides[i] = new Slide(slidesRecords[i], notes, sas, slideIdentifier, (i+1));
    _slides[i].setSlideShow(this);
  }
  }
View Full Code Here

      // Add this new SlidePersistAtom to the SlideListWithText
      slist.addSlidePersistAtom(sp);


      // Create a new Slide
      Slide slide = new Slide(sp.getSlideIdentifier(), sp.getRefID(), _slides.length+1);
        slide.setSlideShow(this);
        slide.onCreate();

      // Add in to the list of Slides
      Slide[] s = new Slide[_slides.length+1];
      System.arraycopy(_slides, 0, s, 0, _slides.length);
      s[_slides.length] = slide;
      _slides = s;
      logger.log(POILogger.INFO, "Added slide " + _slides.length + " with ref " + sp.getRefID() + " and identifier " + sp.getSlideIdentifier());

      // Add the core records for this new Slide to the record tree
      org.apache.poi.hslf.record.Slide slideRecord = slide.getSlideRecord();
      int slideRecordPos = _hslfSlideShow.appendRootLevelRecord(slideRecord);
      _records = _hslfSlideShow.getRecords();


      // Add the new Slide into the PersistPtr stuff
View Full Code Here

  /**
   * Test the stuff about getting/setting bold
   *  on a non rich text run
   */
  public void testBoldNonRich() {
    Slide slideOne = ss.getSlides()[0];
    TextRun[] textRuns = slideOne.getTextRuns();
    RichTextRun rtr = textRuns[0].getRichTextRuns()[0];

    assertNull(rtr._getRawCharacterStyle());
    assertNull(rtr._getRawParagraphStyle());
    assertFalse(rtr.isBold());
View Full Code Here

TOP

Related Classes of org.apache.poi.hslf.model.Slide

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.