private boolean ppt2PDF(String inputFile, String pdfFile) {
ComThread.InitSTA();
long start = System.currentTimeMillis();
ActiveXComponent app = null;
Dispatch ppt = null;
try {
app = new ActiveXComponent("PowerPoint.Application");// 创建一个PPT对象
//app.setProperty("Visible", new Variant(true)); // 不可见打开(PPT转换不运行隐藏,所以这里要注释掉)
//app.setProperty("AutomationSecurity", new Variant(3)); // 禁用宏
Dispatch ppts = app.getProperty("Presentations").toDispatch();// 获取文挡属性
System.out.println("打开文档 >>> " + inputFile);
// 调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
ppt = Dispatch.call(ppts, "Open", inputFile,
true,// ReadOnly
true,// Untitled指定文件是否有标题
false// WithWindow指定文件是否可见
).toDispatch();
System.out.println("转换文档 [" + inputFile + "] >>> [" + pdfFile + "]");
Dispatch.call(ppt, "SaveCopyAs", pdfFile, ppFormatPDF);
//Dispatch.call(ppt, "ExportAsFixedFormat", pdfFile, ppFormatPDF);
long end = System.currentTimeMillis();
System.out.println("用时:" + (end - start) + "ms.");
return true;
} catch (Exception e) {
e.printStackTrace();
System.out.println("========Error:文档转换失败:" + e.getMessage());
} finally {
Dispatch.call(ppt, "Close");
System.out.println("关闭文档");
if (app != null)
app.invoke("Quit", new Variant[] {});
}
ComThread.Release();
ComThread.quitMainSTA();
return false;
}
就是网上到处流传的这段代码,PPT转pdf就会报错
com.jacob.com.ComFailException: Invoke of: SaveAs
Source: Microsoft PowerPoint 2013
Description: Presentation.SaveAs : PowerPoint 无法将 ^0 保存到 ^1。
PPT转jpg也是这样的错误,但是word和excel就不会,求解啊,,,
或者有什么其它的windows下office转pdf的方法么(⊙v⊙)?
跪谢。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
openoffice调用服务转换,不用msoffice,具体可百度。