(一) 简介:

工作中,PowerPoint文档有时需要被转换为PDF/图像文件来存档。因为PDF或图片的页面布局是固定的,很难被修改且能被大多数设备打开,所以PDF或者图片比起PowerPoint格式更易于存档和传递。基于上述原因,下面介绍如何使用Free Spire.Presentation for Java在Java中将PowerPoint文档转为图片或PDF。

(二)所需工具:

  首先,下载免费版的Spire.Presentation,解压到电脑中,将解压包中lib文件夹下的jar包引用至项目中。

  下面是PowerPoint源文档的截图:

(三)JAVA代码示例

1)PPT(X) 转 图片

   定义outputFile用于存放生成文档的文件。使用saveAsImage()方法将每张幻灯片保存为BufferdImage对象,然后将图像数据写入文件,并保存为PNG格式。

//系统中ppt文件位置
String inputFile ="C:\\Users\\Administrator\\Desktop\\Presentation.pptx";
//输出文件的文件夹
String outputFile="output";
//创建一个ppt实例
Presentation ppt = new Presentation();
//加载ppt文件
ppt.loadFromFile(inputFile);
//保存ppt文件为图像文件
; 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));

转换结果:

2 )PPT(X) 转 PDF:

  创建一个Presentation类对象来保存要转换的PowerPoint文件,然后调用相同对象的saveToFile()方法将文档保存为PDF文件。

//系统中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);

运行结果:

3)PPT(X) 转 SVG:

  使用saveTOSVG()将ppt文件赋值给一个byte类型的数组对象,创建一个FIleOututStream对象输出目标文件。

//系统文件的位置
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();
; i < len; i++)
{
    byte[] bytes = svgBytes.get(i);
    FileOutputStream stream = new FileOutputStream(String.format(outputFile + "ToSVG-%d.svg", i));
    stream.write(bytes);

运行结果:

完整代码:

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();
        ; i < len; i++)
        {
            byte[] bytes = svgBytes.get(i);
            FileOutputStream stream = new FileOutputStream(String.format(outputFile + "ToSVG-%d.svg", i));
            stream.write(bytes);
        }
        ppt.dispose();
    }
}

Java:PPT(X)转图片、PDF和SVG的更多相关文章

  1. 利用LibreOffice转换ppt、doc转化pdf

    利用LibreOffice转换ppt.doc转化pdf LibreOffice下载地址:  http://www.libreoffice.org/download/libreoffice-fresh/ ...

  2. Word转换为图片PDF

    1.        Word转换为PDF,程序很多,但转换后的PDF,还可以复制,虽可以加密禁止复制,但市场上太多的PDF,还可以把PDF转换Word等其他格式,很容易被别人利用和剽窃,即便是PDF加 ...

  3. C# 提取PPT文本和图片的实现方案

    在图文混排的文档中,我们可以根据需要将文档中的文字信息或者图片提取出来,通过C#代码可以提取Word和PDF文件中的文本和图片,那么同样的,我们也可以提取PPT幻灯片当中的文本和图片.本篇文档将讲述如 ...

  4. Office系列---将Office文件(Word、PPT、Excel)转换为PDF文件,提取Office文件(Word、PPT)中的所有图片

    将Office文件转换为PDF文件,提取Office文件中的所有图片 1.Office系列---将Office文件(Word.PPT.Excel)转换为PDF文件 1.1 基于Office实现的解决方 ...

  5. 【C#/VB.NET】 将PDF转为SVG/Image, SVG/Image转PDF

    SVG是一种图形文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它在放大或者改变尺寸的情况下其图形质量不会有所损失,且与 JPG 和 GIF 图像比起 ...

  6. java画图程序_图片用字母画出来_源码发布_版本二

    在上一个版本:java画图程序_图片用字母画出来_源码发布 基础上,增加了图片同比例缩放,使得大像素图片可以很好地显示画在Notepad++中. 项目结构: 运行效果1: 原图:http://imag ...

  7. java画图程序_图片用字母画出来_源码发布

    在之前写了一篇blog:java画图程序_图片用字母画出来 主要是把一些调试的截图发布出来,现在程序调试我认为可以了(当然,你如果还想调试的话,也可以下载源码自己调试). 就把源码发布出来. 项目结构 ...

  8. java画图程序_图片用字母画出来

    最近在研究怎样将图片用字母在文本编辑工具中“画”出来. 你看了这个可能还不知道我想说什么? 我想直接上图,大家一定就知道了 第一张:小猫 原图:http://www.cnblogs.com/hongt ...

  9. c/c++常用代码---doc,ppt,xls文件格式转PDF格式[转]

    [转]doc,ppt,xls文件格式转PDF格式 http://blog.csdn.net/lee353086/article/details/7920355 确实好用. 需要注意的是#import文 ...

随机推荐

  1. poj1930 Dead Fraction

    思路: 循环小数化分数,枚举所有可能的循环节,取分母最小的那个. 实现: #include <iostream> #include <cstdio> #include < ...

  2. Java数组的交集、并集

    // 求两个数组的交集 public static int[] SameOfTwoArrays(int[] arr1, int[] arr2) { // 新建一个空数组,用于存储交集,空数组长度应该为 ...

  3. 使用一个CSS Class去给标签定义Style

    使用一个CSS Class去给标签定义Style 类是可重用的样式,可以添加到HTML元素. 下面是一个CSS类声明的例子: <style>   .blue-text {     colo ...

  4. R Programming week2 Control Structures

    Control Structures Control structures in R allow you to control the flow of execution of the program ...

  5. 用 dojo/request/script 玩垮域

    dojo/request/script 可以用于向服务器发送跨域请求,如JSONP等.但单看官方文档有点不容易理解,特将体会记录. require(["dojo/request/script ...

  6. 中国版 Office 365 (X-Tenant / Tango) 功能验证报告 - 1 简介

    花了点时间做了一次Office 365 X-Tenant的 POC,对过程做了记录和总结,在这里会陆续分享: (一) 简介 这次POC的系统环境是模拟一个公司的生产环境: 1. 公司总部在国外,拥有 ...

  7. java web 学习笔记 - tomcat数据源

    1. 数据库源 以前的JDBC连接步骤为: 1.加载数据库驱动 2.通过DriverManger获取数据库连接connection 3.通过connection执行prepareStatement的响 ...

  8. zabbix4.2学习笔记--监控tomcat

    zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架 环境 主机 ...

  9. opencv读图片错误,已解决

    could not loag image... terminate called after throwing an instance of 'cv::Exception' what(): OpenC ...

  10. 布尔上下文,这里misreading返回的是来源列表中元素的个数,如果列表中2个值都是undef,则列表元素个数是1: while( $misreading = (my $test_consideration, my $english_pragma) = each %map_function){

    布尔上下文,这里misreading返回的是来源列表中元素的个数, 列表赋值运算的值将会是来源列表中元素的个数,空列表表示0,如果列表中2个值都是undef,则列表元素个数是1 布尔上下文,这里mis ...