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>11.5.1</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.

Insert Audio in PowerPoint in Java

2019-01-29 05:44:02 Written by Koohji

This article demonstrates how to insert an audio file (.wav) in a presentation slide by using Spire.Presentation for Java.

import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;

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

public class InsertAudio {

    public static void main(String[] args) throws Exception {

        //create a Presentation object and load an example PowerPoint file
        Presentation presentation = new Presentation();
        presentation.loadFromFile("C:/Users/Administrator/Desktop/example.pptx");

        //add a shape to the first slide
        Rectangle2D.Double labelRect= new Rectangle2D.Double(50, 120, 100, 50);
        IAutoShape labelShape = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, labelRect);
        labelShape.getLine().setFillType(FillFormatType.NONE);
        labelShape.getFill().setFillType(FillFormatType.NONE);
        labelShape.getTextFrame().setText("Audio:");
        labelShape.getTextFrame().getTextRange().setFontHeight(28);
        labelShape.getTextFrame().getTextRange().setLatinFont(new TextFont("Myriad Pro Light"));
        labelShape.getTextFrame().getTextRange().getFill().setFillType(FillFormatType.SOLID);
        labelShape.getTextFrame().getTextRange().getFill().getSolidColor().setColor(Color.BLACK);

        //append an audio file to the slide
        Rectangle2D.Double audioRect = new Rectangle2D.Double(170, 120, 50, 50);
        presentation.getSlides().get(0).getShapes().appendAudioMedia((new java.io.File("C:/Users/Administrator/Desktop/Music.wav")).getAbsolutePath(), audioRect);

        //save to file
        presentation.saveToFile("output/InsertAudio.pptx", FileFormat.PPTX_2010);
        presentation.dispose();
    }
}

Insert Audio in PowerPoint in Java

Java: Print PDF Documents

2022-03-18 06:52:00 Written by Koohji

The java.awt.print package provides classes and interfaces for a general printing API. It has the ability to specify the document types and manage the print options, such as specifying printer name, setting print range, printing in duplex, and printing in custom paper sizes. In this article, you will learn how to print PDF documents in Java using this package and Spire.PDF for Java library.

Install Spire.PDF for Java

First of all, you're required to add the Spire.Pdf.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.pdf</artifactId>
        <version>12.7.0</version>
    </dependency>
</dependencies>

Print PDF with the Default Printer Without a Print Dialog

The following are the steps to print PDF documents with the default printer using java.awt.print and Spire.PDF for Java.

  • Create an instance of PrinterJob class, and calls methods in this class to set up a job.
  • Create a PdfDocument object, and load a PDF document using PdfDocument.LoadFromFile() method.
  • Render each page of the document in the specified format using PrinterJob.setPrintable() method.
  • Call PrinterJob.print() method to print the PDF pages.
  • Java
import com.spire.pdf.PdfDocument;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintWithDefaultPrinter {

    public static void main(String[] args) {

        //Create a PrinterJob object which is initially associated with the default printer
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        // Create a PageFormat object and set it to a default size and orientation 
        PageFormat pageFormat = printerJob.defaultPage();

        //Return a copy of the Paper object associated with this PageFormat
        Paper paper = pageFormat.getPaper();

        //Set the imageable area of this Paper
        paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());

        //Set the Paper object for this PageFormat
        pageFormat.setPaper(paper);

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();

        //Load a PDF file
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Call painter to render the pages in the specified format
        printerJob.setPrintable(pdf, pageFormat);

        //Execute printing
        try {
            printerJob.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}

Print Page Ranges with a Specified Printer

The following are the steps to print a page range with a specified printer using java.awt.print and Spire.PDF for Java.

  • Create an instance of PrinterJob class and calls methods in this class to set up a job.
  • Find the available print service using the custom method findPrintService(), and specify the printer name using PrinterJob.setPrintService() method.
  • Create a PdfDocument object, and load a PDF document using PdfDocument.LoadFromFile() method.
  • Render each page of the document in the specified format using PrinterJob.setPrintable() method.
  • Create a PrintRequestAttributeSet object, and add the print range to the attribute set.
  • Call PrinterJob.print() method to print the selected pages.
  • Java
import com.spire.pdf.PdfDocument;
import javax.print.PrintService;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.PageRanges;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintWithSpecifiedPrinter {

    public static void main(String[] args) throws PrinterException {

        //Create a PrinterJob object which is initially associated with the default printer
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        //Specify printer name
        PrintService myPrintService = findPrintService("\\\\192.168.1.104\\HP LaserJet P1007");
        printerJob.setPrintService(myPrintService);

        //Create a PageFormat instance and set it to a default size and orientation
        PageFormat pageFormat = printerJob.defaultPage();

        //Return a copy of the Paper object associated with this PageFormat.
        Paper paper = pageFormat.getPaper();

        //Set the imageable area of this Paper.
        paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());

        //Set the Paper object for this PageFormat.
        pageFormat.setPaper(paper);

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();

        //Load a PDF file
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Call painter to render the pages in the specified format
        printerJob.setPrintable(pdf, pageFormat);
        
        //Create a PrintRequestAttributeSet object
        PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet();

        //Set print range
        attributeSet.add(new PageRanges(1,7));

        //Execute printing
        try {
            printerJob.print(attributeSet);
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }

    //Find print service
    private static PrintService findPrintService(String printerName) {

        PrintService[] printServices = PrinterJob.lookupPrintServices();
        for (PrintService printService : printServices) {
            if (printService.getName().equals(printerName)) {

                System.out.print(printService.getName());
                return printService;
            }
        }
        return null;
    }
}

Print PDF with a Print Dialog

The following are the steps to print PDF documents with print dialog using java.awt.print and Spire.PDF for Java.

  • Create an instance of PrinterJob class, and calls methods in this class to set up a job.
  • Create a PdfDocument object, and load a PDF document using PdfDocument.LoadFromFile() method.
  • Render each page of the document in the specified format using PrinterJob.setPrintable() method.
  • Call PrinterJob.printDialog() method to display print dialog.
  • Call PrinterJob.print() method to print the PDF pages.
  • Java
import com.spire.pdf.PdfDocument;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintWithPrintDialog {

    public static void main(String[] args) {

        //Create a PrinterJob object which is initially associated with the default printer
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        //Create a PageFormat object and set it to a default size and orientation
        PageFormat pageFormat = printerJob.defaultPage();

        //Return a copy of the Paper object associated with this PageFormat
        Paper paper = pageFormat.getPaper();

        //Set the imageable area of this Paper
        paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());

        //Set the Paper object for this PageFormat
        pageFormat.setPaper(paper);

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();
        
        //Load a PDF file
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Call painter to render the pages in the specified format
        printerJob.setPrintable(pdf, pageFormat);

        //Display the print dialog
        if (printerJob.printDialog()) {
            try {
                printerJob.print();
            } catch (PrinterException e) {
                e.printStackTrace();
            }
        }
    }
}

Print PDF in Duplex Mode

The following are the steps to print PDF documents in duplex mode using java.awt.print and Spire.PDF for Java.

  • Create an instance of PrinterJob class and calls methods in this class to set up a job.
  • Create a PdfDocument object, and load a PDF document using PdfDocument.LoadFromFile() method.
  • Render each page of the document in the specified format using PrinterJob.setPrintable() method.
  • Create a PrintRequestAttributeSet object, and add the two-sided printing mode to the attribute set.
  • Call PrinterJob.print() method to print the PDF pages.
  • Java
import com.spire.pdf.PdfDocument;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Sides;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintInDuplexMode {

    public static void main(String[] args) {

        //Create a PrinterJob object which is initially associated with the default printer
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        //Create a PageFormat object and set it to a default size and orientation
        PageFormat pageFormat = printerJob.defaultPage();

        //Return a copy of the Paper object associated with this PageFormat
        Paper paper = pageFormat.getPaper();

        //Set the imageable area of this Paper
        paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());

        //Set the Paper object for this PageFormat
        pageFormat.setPaper(paper);

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();

        //Load a PDF file
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Call painter to render the pages in the specified format
        printerJob.setPrintable(pdf, pageFormat);

        //Create a PrintRequestAttributed object
        PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet();
        
        //Set to duplex printing mode
        attributeSet.add(Sides.TWO_SIDED_SHORT_EDGE);

        //Execute printing
        try {
            printerJob.print(attributeSet);
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}

Print PDF in a Custom Paper Size

The following are the steps to print PDF documents in a custom paper size using java.awt.print and Spire.PDF for Java.

  • Create an instance of PrinterJob class and calls methods in this class to set up a job.
  • Set the with and height of the Paper object using Paper.setSize() method.
  • Create a PdfDocument object, and load a PDF document using PdfDocument.LoadFromFile() method.
  • Render each page of the document in the specified format using PrinterJob.setPrintable() method.
  • Call PrinterJob.print() method to print the PDF pages.
  • Java
import com.spire.pdf.PdfDocument;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintInCustomPaperSize {

    public static void main(String[] args) {

        //Create a PrinterJob object which is initially associated with the default printer
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        //Create a PageFormat object and set it to a default size and orientation
        PageFormat pageFormat = printerJob.defaultPage();

        //Return a copy of the Paper object associated with this PageFormat
        Paper paper = pageFormat.getPaper();

        //Set the width and height of this Paper object
        paper.setSize(500,600);

        //Set the Paper object for this PageFormat
        pageFormat.setPaper(paper);

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();

        //Load a PDF file
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Call painter to render the pages in the specified format
        printerJob.setPrintable(pdf, pageFormat);

        //Execute printing
        try {
            printerJob.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}

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.

page 73