Search in sources :

Example 21 with HSLFSlideShow

use of org.apache.poi.hslf.usermodel.HSLFSlideShow in project poi by apache.

the class TestMovieShape method testCreate.

@Test
public void testCreate() throws Exception {
    HSLFSlideShow ppt = new HSLFSlideShow();
    HSLFSlide slide = ppt.createSlide();
    String path = "/test-movie.mpg";
    int movieIdx = ppt.addMovie(path, MovieShape.MOVIE_MPEG);
    HSLFPictureData thumbnailData = ppt.addPicture(_slTests.readFile("tomcat.png"), PictureType.PNG);
    MovieShape shape = new MovieShape(movieIdx, thumbnailData);
    shape.setAnchor(new Rectangle2D.Double(300, 225, 120, 90));
    slide.addShape(shape);
    assertEquals(path, shape.getPath());
    assertTrue(shape.isAutoPlay());
    shape.setAutoPlay(false);
    assertFalse(shape.isAutoPlay());
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ppt.write(out);
    ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()));
    slide = ppt.getSlides().get(0);
    shape = (MovieShape) slide.getShapes().get(0);
    assertEquals(path, shape.getPath());
    assertFalse(shape.isAutoPlay());
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) Rectangle2D(java.awt.geom.Rectangle2D) ByteArrayOutputStream(java.io.ByteArrayOutputStream) HSLFPictureData(org.apache.poi.hslf.usermodel.HSLFPictureData) HSLFSlideShow(org.apache.poi.hslf.usermodel.HSLFSlideShow) HSLFSlide(org.apache.poi.hslf.usermodel.HSLFSlide) Test(org.junit.Test)

Example 22 with HSLFSlideShow

use of org.apache.poi.hslf.usermodel.HSLFSlideShow in project poi by apache.

the class EmbeddedObjects method main.

@SuppressWarnings("unused")
public static void main(String[] args) throws Exception {
    POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(args[0]));
    HSSFWorkbook workbook = new HSSFWorkbook(fs);
    for (HSSFObjectData obj : workbook.getAllEmbeddedObjects()) {
        //the OLE2 Class Name of the object
        String oleName = obj.getOLE2ClassName();
        DirectoryNode dn = (obj.hasDirectoryEntry()) ? (DirectoryNode) obj.getDirectory() : null;
        Closeable document = null;
        if (oleName.equals("Worksheet")) {
            document = new HSSFWorkbook(dn, fs, false);
        } else if (oleName.equals("Document")) {
            document = new HWPFDocument(dn);
        } else if (oleName.equals("Presentation")) {
            document = new HSLFSlideShow(dn);
        } else {
            if (dn != null) {
                // The DirectoryEntry is a DocumentNode. Examine its entries to find out what it is
                for (Entry entry : dn) {
                    String name = entry.getName();
                }
            } else {
                // There is no DirectoryEntry
                // Recover the object's data from the HSSFObjectData instance.
                byte[] objectData = obj.getObjectData();
            }
        }
        if (document != null) {
            document.close();
        }
    }
    workbook.close();
}
Also used : HWPFDocument(org.apache.poi.hwpf.HWPFDocument) Entry(org.apache.poi.poifs.filesystem.Entry) POIFSFileSystem(org.apache.poi.poifs.filesystem.POIFSFileSystem) Closeable(java.io.Closeable) HSSFObjectData(org.apache.poi.hssf.usermodel.HSSFObjectData) DirectoryNode(org.apache.poi.poifs.filesystem.DirectoryNode) HSLFSlideShow(org.apache.poi.hslf.usermodel.HSLFSlideShow) FileInputStream(java.io.FileInputStream) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook)

Example 23 with HSLFSlideShow

use of org.apache.poi.hslf.usermodel.HSLFSlideShow in project poi by apache.

the class LoadEmbedded method loadEmbedded.

public static void loadEmbedded(HSSFWorkbook workbook) throws IOException {
    for (HSSFObjectData obj : workbook.getAllEmbeddedObjects()) {
        //the OLE2 Class Name of the object
        String oleName = obj.getOLE2ClassName();
        if (oleName.equals("Worksheet")) {
            DirectoryNode dn = (DirectoryNode) obj.getDirectory();
            HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(dn, false);
            embeddedWorkbook.close();
        } else if (oleName.equals("Document")) {
            DirectoryNode dn = (DirectoryNode) obj.getDirectory();
            HWPFDocument embeddedWordDocument = new HWPFDocument(dn);
            embeddedWordDocument.close();
        } else if (oleName.equals("Presentation")) {
            DirectoryNode dn = (DirectoryNode) obj.getDirectory();
            SlideShow<?, ?> embeddedSlieShow = new HSLFSlideShow(dn);
            embeddedSlieShow.close();
        } else {
            if (obj.hasDirectoryEntry()) {
                // The DirectoryEntry is a DocumentNode. Examine its entries to find out what it is
                DirectoryNode dn = (DirectoryNode) obj.getDirectory();
                for (Entry entry : dn) {
                //System.out.println(oleName + "." + entry.getName());
                }
            } else {
                // There is no DirectoryEntry
                // Recover the object's data from the HSSFObjectData instance.
                byte[] objectData = obj.getObjectData();
            }
        }
    }
}
Also used : HWPFDocument(org.apache.poi.hwpf.HWPFDocument) Entry(org.apache.poi.poifs.filesystem.Entry) HSSFObjectData(org.apache.poi.hssf.usermodel.HSSFObjectData) DirectoryNode(org.apache.poi.poifs.filesystem.DirectoryNode) HSLFSlideShow(org.apache.poi.hslf.usermodel.HSLFSlideShow) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook)

Example 24 with HSLFSlideShow

use of org.apache.poi.hslf.usermodel.HSLFSlideShow in project poi by apache.

the class TestSound method testRealFile.

@Test
public void testRealFile() throws IOException {
    POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
    HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("sound.ppt"));
    // Get the document
    Document doc = ppt.getDocumentRecord();
    SoundCollection soundCollection = null;
    Record[] doc_ch = doc.getChildRecords();
    for (Record rec : doc_ch) {
        if (rec instanceof SoundCollection) {
            soundCollection = (SoundCollection) rec;
            break;
        }
    }
    assertNotNull(soundCollection);
    Sound sound = null;
    Record[] sound_ch = soundCollection.getChildRecords();
    int k = 0;
    for (Record rec : sound_ch) {
        if (rec instanceof Sound) {
            sound = (Sound) rec;
            k++;
        }
    }
    assertNotNull(sound);
    assertEquals(1, k);
    assertEquals("ringin.wav", sound.getSoundName());
    assertEquals(".WAV", sound.getSoundType());
    assertNotNull(sound.getSoundData());
    byte[] ref_data = slTests.readFile("ringin.wav");
    assertArrayEquals(ref_data, sound.getSoundData());
    ppt.close();
}
Also used : POIDataSamples(org.apache.poi.POIDataSamples) HSLFSlideShow(org.apache.poi.hslf.usermodel.HSLFSlideShow) Test(org.junit.Test)

Example 25 with HSLFSlideShow

use of org.apache.poi.hslf.usermodel.HSLFSlideShow in project poi by apache.

the class TestExHyperlink method testRealFile.

@Test
public void testRealFile() throws IOException {
    POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
    HSLFSlideShowImpl hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("WithLinks.ppt"));
    HSLFSlideShow ss = new HSLFSlideShow(hss);
    // Get the document
    Document doc = ss.getDocumentRecord();
    // Get the ExObjList
    ExObjList exObjList = null;
    for (final Record rec : doc._children) {
        if (rec instanceof ExObjList) {
            exObjList = (ExObjList) rec;
        }
    }
    assertNotNull(exObjList);
    // Within that, grab out the Hyperlink atoms
    List<ExHyperlink> linksA = new ArrayList<ExHyperlink>();
    for (Record ch : exObjList._children) {
        if (ch instanceof ExHyperlink) {
            linksA.add((ExHyperlink) ch);
        }
    }
    // Should be 4 of them
    assertEquals(4, linksA.size());
    ExHyperlink[] links = new ExHyperlink[linksA.size()];
    linksA.toArray(links);
    assertEquals(4, exObjList.getExHyperlinks().length);
    // Check the other way
    // Check they have what we expect in them
    assertEquals(1, links[0].getExHyperlinkAtom().getNumber());
    assertEquals("http://jakarta.apache.org/poi/", links[0].getLinkURL());
    assertEquals(2, links[1].getExHyperlinkAtom().getNumber());
    assertEquals("http://slashdot.org/", links[1].getLinkURL());
    assertEquals(3, links[2].getExHyperlinkAtom().getNumber());
    assertEquals("http://jakarta.apache.org/poi/hssf/", links[2].getLinkURL());
    assertEquals(4, links[3].getExHyperlinkAtom().getNumber());
    assertEquals("http://jakarta.apache.org/hslf/", links[3].getLinkURL());
    ss.close();
}
Also used : POIDataSamples(org.apache.poi.POIDataSamples) ArrayList(java.util.ArrayList) HSLFSlideShow(org.apache.poi.hslf.usermodel.HSLFSlideShow) HSLFSlideShowImpl(org.apache.poi.hslf.usermodel.HSLFSlideShowImpl) Test(org.junit.Test)

Aggregations

HSLFSlideShow (org.apache.poi.hslf.usermodel.HSLFSlideShow)69 Test (org.junit.Test)42 HSLFSlide (org.apache.poi.hslf.usermodel.HSLFSlide)39 HSLFShape (org.apache.poi.hslf.usermodel.HSLFShape)17 ByteArrayInputStream (java.io.ByteArrayInputStream)12 ByteArrayOutputStream (java.io.ByteArrayOutputStream)12 InputStream (java.io.InputStream)10 FileOutputStream (java.io.FileOutputStream)9 HSLFTextRun (org.apache.poi.hslf.usermodel.HSLFTextRun)9 HSLFTextParagraph (org.apache.poi.hslf.usermodel.HSLFTextParagraph)8 Rectangle2D (java.awt.geom.Rectangle2D)7 FileInputStream (java.io.FileInputStream)7 HSLFPictureData (org.apache.poi.hslf.usermodel.HSLFPictureData)7 HSSFWorkbook (org.apache.poi.hssf.usermodel.HSSFWorkbook)7 HWPFDocument (org.apache.poi.hwpf.HWPFDocument)7 HSLFSlideShowImpl (org.apache.poi.hslf.usermodel.HSLFSlideShowImpl)6 HSLFTextBox (org.apache.poi.hslf.usermodel.HSLFTextBox)5 POIDataSamples (org.apache.poi.POIDataSamples)4 Record (org.apache.poi.hslf.record.Record)4 HSLFHyperlink (org.apache.poi.hslf.usermodel.HSLFHyperlink)4