在JAVA中把PPT文档转换为图片如JPG

悬赏:45 发布时间:2008-08-07 提问人:Jatula (初级程序员)

问题如标题:本人从网络上找了两个相关的例子:
只能获取图片:
public class PPTToImageConverter {
public static void main(String[] args) throws Exception {
SlideShow ppt = new SlideShow(new HSLFSlideShow("D:/test.ppt"));

// extract all pictures contained in the presentation
PictureData[] pdata = ppt.getPictureData();
for (int i = 0; i < pdata.length; i++) {
PictureData pict = pdata[i];

// picture data
byte[] data = pict.getData();

int type = pict.getType();
String ext;
switch (type) {
case Picture.JPEG:
ext = ".jpg";
break;
case Picture.PNG:
ext = ".png";
break;
case Picture.WMF:
ext = ".wmf";
break;
case Picture.EMF:
ext = ".emf";
break;
case Picture.PICT:
ext = ".pict";
break;
default:
continue;
}
FileOutputStream out = new FileOutputStream("D:/pict_" + i + ext);
out.write(data);
out.close();

}
}
}
只能获取文本:
public static String readPpt(String path) throws Exception {

StringBuffer content = new StringBuffer("");
try {
SlideShow ss = new SlideShow(new HSLFSlideShow(path));
//path为文件的全路径名称,建立SlideShow
Slide[] slides = ss.getSlides();
//获得每一张幻灯片
for (int i = 0; i < slides.length; i++) {
TextRun[] t = slides[i].getTextRuns();
//为了取得幻灯片的文字内容,建立TextRun
for (int j = 0; j < t.length; j++) {
content.append(t[j].getText());
//这里会将文字内容加到content中去
}
content.append(slides[i].getTitle());
}
} catch (Exception ex) {
System.out.println(ex.toString());
}
return content.toString().trim();
}
暂不考虑用DLL调用;

 


问题补充:
上面就是采用POI的方法;

问题补充:
那跟别存为,选择存储类型为图片类型,一次存出来有什么区别,重点能够跟程序结合!
该问题已经关闭: 一個字,慘

回答

详细的我不是很清楚,但是在Java中不是有个POI的项目吗?这个可以显示PPT,然后再做一些图形上的处理,把显示的内容转化成图片,如果没有现成的API可以直接实现这个功能,我想应该就是这么做了。
mmikey (初级程序员) 2008-08-07
不用dll或activex技术的话
目前没法实现
kimmking (中级程序员) 2008-08-07
可以试试JODConverter,http://www.artofsolving.com/opensource/jodconverter;JODConverter一个Java的OpenDocument 文件转换器,可以进行许多格式的转换,它利用OpenOffice所提供的格式转换服务来完成工作。使用Java语言编写。
raise (初级程序员) 2008-08-07
用robot中的一些属性,应该可以进行抓屏我试验过,但是要讲整个ppt变成图片可能需要叉树遍历的效果才能达到吧
niceo (初级程序员) 2008-08-08
显然 各楼的建议都不能达到 目的

也没有一个简单的途径 将他们提及的东西 实现为所需的功能
kimmking (中级程序员) 2008-08-08
用Java实现不了,目前唯一能够100%精确实现的方法是利用windows的虚拟打印技术,直接调用ms ppt程序将ppt文件打印成jpg文件。
neora (初级程序员) 2008-08-12
虚拟打印技术 可以实现ppt-》图片

但是
1、需要装一个虚拟打印机,先”打印“生成ps描述文件。
2、无法在java中调用和控制。

显然也不合lz的期望。
kimmking (中级程序员) 2008-08-12