Java: Insert, Replace or Extract Videos in PowerPoint

Compared with text and images, videos are more engaging to people. By including videos in your presentation, you can easily capture the attention of your audience, explain complex concepts in an efficient and easy-to-understand way as well as make the presentation look more dynamic and creative. In this article, you will learn how to insert, replace or extract videos in PowerPoint in Java using Spire.Presentation for Java.

Install Spire.Presentation for Java

First of all, you're required to add the Spire.Presentation.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.presentation</artifactId>
        <version>9.10.2</version>
    </dependency>
</dependencies>
    

Insert a Video into a PowerPoint Presentation in Java

By inserting a video into your presentation, you can share the video with your audience instantly without having to look for it on your computer while presenting. The following steps demonstrate how to insert a video into a PowerPoint presentation:

  • Create an instance of the Presentation class.
  • Load a PowerPoint document using Presentation.loadFromFile() method.
  • Get a specific slide by its index using Presentation.getSlides().get(int) method.
  • Create an instance of the Rectangle2D class.
  • Add a video to the slide using ISlide.getShapes().appendVideoMedia(String, Rectangle2D) method.
  • Set a thumbnail image for the video using IVideo.getPictureFill().getPicture().setUrl() method.
  • Save the result document using Presentation.SaveToFile() method.
  • Java
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;

import java.awt.*;
import java.awt.geom.Rectangle2D;

public class InsertVideo {
    public static void main(String []args) throws Exception {
        //Create a Presentation instance
        Presentation presentation = new Presentation();
        //Load a PowerPoint document
        presentation.loadFromFile("Input.pptx");

        //Get the first slide
        ISlide slide = presentation.getSlides().get(0);

        //Add description text
        Rectangle2D.Double rec_title = new Rectangle2D.Double(50, 280, 160, 50);
        IAutoShape shape_title = slide.getShapes().appendShape(ShapeType.RECTANGLE, rec_title);
        shape_title.getLine().setFillType(FillFormatType.NONE);
        shape_title.getFill().setFillType(FillFormatType.NONE);
        ParagraphEx para_title = new ParagraphEx();
        para_title.setText("Video:");
        para_title.setAlignment(TextAlignmentType.CENTER);
        para_title.getTextRanges().get(0).setLatinFont(new TextFont("Myriad Pro Light"));
        para_title.getTextRanges().get(0).setFontHeight(32);
        para_title.getTextRanges().get(0).isBold(TriState.TRUE);
        para_title.getTextRanges().get(0).getFill().setFillType(FillFormatType.SOLID);
        para_title.getTextRanges().get(0).getFill().getSolidColor().setColor(Color.gray);
        shape_title.getTextFrame().getParagraphs().append(para_title);

        //Add a video to the first slide
        Rectangle2D.Double videoRect = new Rectangle2D.Double(presentation.getSlideSize().getSize().getWidth() / 2 - 125, 240, 240, 130);
        IVideo video = slide.getShapes().appendVideoMedia("Video.mp4", videoRect);
        //Set a thumbnail image for the video
        video.getPictureFill().getPicture().setUrl("https://cdn.e-iceblue.com/Picture.png");

        //Save the result document
        presentation.saveToFile("InsertVideo.pptx", FileFormat.PPTX_2013);
    }
}

Java: Insert, Replace or Extract Videos in PowerPoint

Replace a Video in a PowerPoint Presentation in Java

If you think an existing video cannot support your statements well, you can replace it with another suitable one. The following steps demonstrate how to replace an existing video with another video in a PowerPoint presentation:

  • Create an instance of the Presentation class.
  • Load a PowerPoint document using Presentation.loadFromFile() method.
  • Get a specific slide by its index using Presentation.getSlides().get(int) method.
  • Load a video into a byte array.
  • Add the loaded video to the video collection of the document using Presentation.getVideos().append(byte[]) method.
  • Loop through all shapes on the slide and find the video shape.
  • Replace the original video with the loaded video using IVideo.setEmbeddedVideoData() method. Then change the thumbnail image of the video using IVideo.getPictureFill().getPicture().setUrl() method.
  • Save the result document using Presentation.saveToFile() method.
  • Java
import com.spire.presentation.*;

import java.io.File;
import java.io.FileInputStream;

public class ReplaceVideo {
    public static void main(String []args) throws Exception {
        //Create a Presentation instance
        Presentation ppt = new Presentation();
        //Load a PowerPoint document
        ppt.loadFromFile("InsertVideo.pptx");

        //Get the first slide
        ISlide iSlide = ppt.getSlides().get(0);

        //Load a video into a byte array
        File file = new File("NewVideo.mp4");
        FileInputStream fileInputStream = new FileInputStream(file);
        byte[] data = new byte[(int) file.length()];
        fileInputStream.read(data);

        //Add the loaded video to the video collection of the document
        VideoData videoData = ppt.getVideos().append(data);

        //Loop through all shapes on the first slide
        for (Object shape : iSlide.getShapes()) {
            //Check if the current shape is of IVideo type
            if (shape instanceof IVideo) {
                IVideo video = (IVideo) shape;
                //Replace the original video with the loaded video
                video.setEmbeddedVideoData(videoData);
                //Change the thumbnail image of the video
                video.getPictureFill().getPicture().setUrl("https://cdn.e-iceblue.com/Picture1.png");
            }
        }
        //Save the result document
        ppt.saveToFile("ReplaceVideo.pptx", FileFormat.PPTX_2013);
    }
}

Java: Insert, Replace or Extract Videos in PowerPoint

Extract Videos from a PowerPoint Presentation in Java

If you like the videos in a PowerPoint presentation and want to use them in other places, you can extract and save them to your disk. The following steps demonstrate how to extract videos from a PowerPoint presentation:

  • Create an instance of the Presentation class.
  • Load a PowerPoint document using Presentation.LoadFromFile() method.
  • Loop through all slides in the document.
  • Loop through all shapes on each slide.
  • Find the video shapes, then save the videos to disk using IVideo.getEmbeddedVideoData().saveToFile() method.
  • Java
import com.spire.presentation.*;

public class ExtractVideo {
    public static void main(String []args) throws Exception {
        //Create a Presentation instance
        Presentation presentation = new Presentation();
        //Load a PowerPoint document
        presentation.loadFromFile("ReplaceVideo.pptx");

        int i = 0;
        //Specify the output file path
        String videoPath = String.format("Videos/Video{0}.mp4", i);

        //Loop through all slides in the document
        for (Object slideObj : presentation.getSlides()) {
            ISlide slide = (ISlide) slideObj;
            //Loop through all shapes on each slide
            for (Object shapeObj : slide.getShapes()) {
                IShape shape = (IShape) shapeObj;
                //Check if the shape is of IVideo type
                if (shape instanceof IVideo) {
                    //Save the video to the specified path
                    ((IVideo) shape).getEmbeddedVideoData().saveToFile(videoPath);
                    i++;
                }
            }
        }
    }
}

Java: Insert, Replace or Extract Videos in PowerPoint

Apply for a Temporary License

If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.