Java (485)
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.
- Insert a Video into a PowerPoint Presentation
- Replace a Video in a PowerPoint Presentation
- Extract Videos from a PowerPoint Presentation
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);
}
}

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);
}
}

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++;
}
}
}
}
}

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.
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();
}
}

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.
- Print PDF with the Default Printer Without a Print Dialog
- Print Page Ranges with a Specified Printer
- Print PDF with a Print Dialog
- Print PDF in Duplex Mode
- Print PDF in a Custom Paper Size
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.