Java:PPT(X)转图片、PDF和SVG
(一) 简介:
工作中,PowerPoint文档有时需要被转换为PDF/图像文件来存档。因为PDF或图片的页面布局是固定的,很难被修改且能被大多数设备打开,所以PDF或者图片比起PowerPoint格式更易于存档和传递。基于上述原因,下面介绍如何使用Free Spire.Presentation for Java在Java中将PowerPoint文档转为图片或PDF。
(二)所需工具:
- Free Spire.Presentation for Java 2.2.3(免费版)
- Intellij IDEA
首先,下载免费版的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的更多相关文章
- 利用LibreOffice转换ppt、doc转化pdf
利用LibreOffice转换ppt.doc转化pdf LibreOffice下载地址: http://www.libreoffice.org/download/libreoffice-fresh/ ...
- Word转换为图片PDF
1. Word转换为PDF,程序很多,但转换后的PDF,还可以复制,虽可以加密禁止复制,但市场上太多的PDF,还可以把PDF转换Word等其他格式,很容易被别人利用和剽窃,即便是PDF加 ...
- C# 提取PPT文本和图片的实现方案
在图文混排的文档中,我们可以根据需要将文档中的文字信息或者图片提取出来,通过C#代码可以提取Word和PDF文件中的文本和图片,那么同样的,我们也可以提取PPT幻灯片当中的文本和图片.本篇文档将讲述如 ...
- Office系列---将Office文件(Word、PPT、Excel)转换为PDF文件,提取Office文件(Word、PPT)中的所有图片
将Office文件转换为PDF文件,提取Office文件中的所有图片 1.Office系列---将Office文件(Word.PPT.Excel)转换为PDF文件 1.1 基于Office实现的解决方 ...
- 【C#/VB.NET】 将PDF转为SVG/Image, SVG/Image转PDF
SVG是一种图形文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它在放大或者改变尺寸的情况下其图形质量不会有所损失,且与 JPG 和 GIF 图像比起 ...
- java画图程序_图片用字母画出来_源码发布_版本二
在上一个版本:java画图程序_图片用字母画出来_源码发布 基础上,增加了图片同比例缩放,使得大像素图片可以很好地显示画在Notepad++中. 项目结构: 运行效果1: 原图:http://imag ...
- java画图程序_图片用字母画出来_源码发布
在之前写了一篇blog:java画图程序_图片用字母画出来 主要是把一些调试的截图发布出来,现在程序调试我认为可以了(当然,你如果还想调试的话,也可以下载源码自己调试). 就把源码发布出来. 项目结构 ...
- java画图程序_图片用字母画出来
最近在研究怎样将图片用字母在文本编辑工具中“画”出来. 你看了这个可能还不知道我想说什么? 我想直接上图,大家一定就知道了 第一张:小猫 原图:http://www.cnblogs.com/hongt ...
- c/c++常用代码---doc,ppt,xls文件格式转PDF格式[转]
[转]doc,ppt,xls文件格式转PDF格式 http://blog.csdn.net/lee353086/article/details/7920355 确实好用. 需要注意的是#import文 ...
随机推荐
- Python 设计模式--简单工厂模式
简单工厂模式(Factory Pattern)是一种创建型的设计模式,像工厂一样根据要求生产对象实例. 特点:根据不同的条件,工厂实例化出合适的对象. <大话设计模式>中实例:四则运算计算 ...
- call方法的使用bug--参数undefined
call/apply是函数原型定义的方法(Function.prorotype),在使用时要注意第一个形参(args[0]),一定是指向函数所要挂载的上下文对象--context,若对象非必须,则要将 ...
- vb 案例学习
' ================================================================================================== ...
- 洛谷 P1886 滑动窗口 (数据与其他网站不同。。)
题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 例如: The array i ...
- ubuntu15.04安装 RVM
首先,请参考这篇文章 https://ruby-china.org/wiki/rvm-guide RVM 官方网站 https://rvm.io/ 1 由于现在很多网站都转向https链接,所以,根据 ...
- (转) 淘淘商城系列——解决KindEditor上传图片浏览器兼容性问题
http://blog.csdn.net/yerenyuan_pku/article/details/72808229 上文我们已实现了图片上传功能,但是有个问题,那就是对浏览器兼容性不够,因为Map ...
- 查看DNS、IP、Mac等
A.Win98:winipcfg B.Win2000以上:Ipconfig/all C.NSLOOKUP:如查看河北的DNS C:\\>nslookup Default Server: ...
- chown - 修改文件所有者和组别
总览 chown [options] user [:group] file... POSIX 选项: [-R] GNU 选项(最短格式): [-cfhvR] [--dereference] [--re ...
- crontab 每月最后一天执行命令
没有什么是解决不了的事情,如果有,只是我们的知识不够精通,学得不扎实 需求:有一个程序,需要在每个月的最后一天执行 例如:每个月的最后一天早上8:00 打印 dede 到 /tmp/test.txt ...
- react link引入外部css样式的坑
刚开始的代码是这样的,使用react router4.x写的demo路由跳转后,页面的没有渲染,是因为没有引入外部css文件(或者说引入外部文件路径错误) <!DOCTYPE html> ...