简介:PPT在日常工作中的作用是至关重要的,而有时PPT文档需要被转换为多种形式来传播。将PPT转为image、PDF和SVG有两大优点:
- 更适合存档,因为PDF/image文件在页面布局上是固定的,很难修改。
- 更方便的交付,因为PDF/图像文件与大多数设备兼容。
基于上述原因,您可能会将PowerPoint文档转换为PDF文件或多个图像文件。下面这篇文章将介绍如何使用Free Spire.Presentation for Java将PPT转为image、PDF和SVG等常用格式的文档。
所需工具:
- Free Spire.Presentation for Java 2.2.3(免费版)
- Intellij IDEA
PPT(X) 转 image:
1) 下载好Spire.Presentation 免费版的安装包后解压,到安装路径下lib中将所需.jar包添加到项目中。
2) 系统中文件的位置和转换后图片将存放的位置上(已存在的文件夹);
//系统中ppt文件位置 String inputFile ="C:\\Users\\Administrator\\Desktop\\Presentation.pptx"; //输出文件的文件夹 String outputFile="output";
3) 使用saveAsImage()方法将每张幻灯片保存为BufferdImage,然后将图像数据以.png文件格式写入图像文件。
//创建一个ppt实例 Presentation ppt = new Presentation(); //加载ppt文件 ppt.loadFromFile(inputFile); //保存ppt文件为图像文件 for (int i = 0; i < ppt.getSlides().getCount(); i++) { BufferedImage image = ppt.getSlides().get(i).saveAsImage(); String fileName = outputFile + "/" + String.format("ToImage-%1$s.png", i); ImageIO.write(image, "PNG",new File(fileName)); }
4) 转换结果:
完整代码:
import com.spire.presentation.Presentation; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; public class toImage { public static void main(String[] args) throws Exception{ //系统中ppt文件位置 String inputFile ="C:\\Users\\Administrator\\Desktop\\Presentation.pptx"; //输出文件的文件夹 String outputFile="output"; //创建一个ppt实例 Presentation ppt = new Presentation(); //加载ppt文件 ppt.loadFromFile(inputFile); //保存ppt文件为图像文件 for (int i = 0; i < ppt.getSlides().getCount(); i++) { BufferedImage image = ppt.getSlides().get(i).saveAsImage(); String fileName = outputFile + "/" + String.format("ToImage-%1$s.png", i); ImageIO.write(image, "PNG",new File(fileName)); } ppt.dispose(); } }
PPT(X) 转 PDF:
1) 系统中PPT文档位置、转换完成后PDF文件将存在的位置和格式(已经存在的文件夹)。
//系统中ppt文件的位置 String inputFile ="C:\\Users\\Administrator\\Desktop\\Presentation.pptx"; //ppt转pdf过后将存在的位置和格式 String outputFile="output/toPDF_result.pdf";
2) 创建一个Presentation类对象来保存要转换的PowerPoint文件,然后调用相同对象的saveToFile()方法将文档保存为PDF文件。
//创建一个ppt实例 Presentation ppt = new Presentation(); //加载ppt文件 ppt.loadFromFile(inputFile); //保存ppt为pdf格式 ppt.saveToFile(outputFile, FileFormat.PDF);
3) 运行结果与PPT原文档的对比:
完整代码:
import com.spire.presentation.*; public class toPDF { public static void main(String[] args) throws Exception { //系统中PPT文件的位置 String inputFile ="C:\\Users\\Administrator\\Desktop\\Presentation.pptx"; //ppt转pdf过后将存在的位置和格式 String outputFile="output/toPDF_result.pdf"; //创建一个ppt实例 Presentation ppt = new Presentation(); //加载ppt文件 ppt.loadFromFile(inputFile); //保存ppt为pdf格式 ppt.saveToFile(outputFile, FileFormat.PDF); ppt.dispose(); } }
PPT(X) 转 SVG:
1) SVG生成存在的位置(已存在的文件夹)
//系统文件的位置 String inputFile ="C:\\Users\\Administrator\\Desktop\\Presentation.pptx"; //SVG生成后存在的位置 String outputFile="output/";
2) 保存为SVG文件。
//创建PPT(X)实例 Presentation ppt = new Presentation(); //加载PPT(X)文件 ppt.loadFromFile(inputFile); ArrayList<byte[]> svgBytes =(ArrayList<byte[]>) ppt.saveToSVG(); int count = svgBytes.size(); int len = svgBytes.size(); for (int i = 0; i < len; i++) { byte[] bytes = svgBytes.get(i); FileOutputStream stream = new FileOutputStream(String.format(outputFile + "ToSVG-%d.svg", i)); stream.write(bytes); }
3) 运行结果:
完整代码:
import com.spire.presentation.Presentation; import java.io.FileOutputStream; import java.util.ArrayList; public class toSVG { public static void main(String[] args) throws Exception{ //系统文件的位置 String inputFile ="C:\\Users\\Administrator\\Desktop\\Presentation.pptx"; //SVG生成后存在的位置 String outputFile="output/"; //创建ppt实例 Presentation ppt = new Presentation(); //加载ppt文件 ppt.loadFromFile(inputFile); ArrayList<byte[]> svgBytes =(ArrayList<byte[]>) ppt.saveToSVG(); int count = svgBytes.size(); int len = svgBytes.size(); for (int i = 0; i < len; i++) { byte[] bytes = svgBytes.get(i); FileOutputStream stream = new FileOutputStream(String.format(outputFile + "ToSVG-%d.svg", i)); stream.write(bytes); } ppt.dispose(); } }