Java:PPT(X)转image、PDF和SVG

简介: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();
    }
}
View Code

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

 

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

 

 

 

猜你喜欢

转载自www.cnblogs.com/MariaWang/p/10863612.html