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,具体可百度。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。