public static void testPPT() {
String source = "D:\\test\\test.pptx";
String target = "D:\\test\\test.pdf";
long start = System.currentTimeMillis();
ActiveXComponent app = null;
Dispatch ppt = null;
try {
File targetFile = new File(target);
if (targetFile.exists()) {
targetFile.delete();
}
ComThread.InitSTA();
app = new ActiveXComponent("Powerpoint.Application");
Dispatch ppts = app.getProperty("Presentations").toDispatch();
/*
* call
* param 4: ReadOnly
* param 5: Untitled指定文件是否有标题
* param 6: WithWindow指定文件是否可见
* */
System.out.println("打开文档" + source);
ppt = Dispatch.call(ppts, "Open", source, true, true, false).toDispatch();
System.out.println("正在转换为PDF " + target);
// 转换pdf值为32
Dispatch.call(ppt, "SaveAs", target, 32);
// 转换png值为18, 这里的target需要输入文件夹
// Dispatch.call(ppt, "SaveAs", "D:\\test\\test", 18);
long end = System.currentTimeMillis();
System.out.println("转换完成用时:" + (end - start) + "ms.");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ppt != null) {
Dispatch.call(ppt, "Close");
}
if (app != null) {
app.invoke("Quit");
}
ComThread.Release();
}
}
幻灯片1.PNG
这种格式,所以得再改名来符合需求,这个就很简单了,网上都是。new ActiveXComponent("Powerpoint.Application")
这个Powerpoint.Application,可以在电脑的注册表上找到所以当这一行报错时,看看电脑是否装了wps或者office
//当文件占用无法删除时,wps没有影响依旧能调用SaveAs方法,但是office则会报错,这是我这次发现的区别,需要注意
File targetFile = new File(target);
if (targetFile.exists()) {
targetFile.delete();
}
更多【java-java调用jacob进行文件转换ppt转pdf或者png】相关视频教程:www.yxfzedu.com