jacob实现ppt转图片时存在的问题
2016-01-19 18:04
656 查看
1、原因
对于ppt转图片,尝试过很多种方法,最后确认使用jacob,虽然需要有windows系统和wps(或者office)这样的限制,但排版和图片质量相对来说就非常好了。
2、问题
(1)使用jacob之前,请先确定安装有wps(或者office)
(2)使用jacob时需要配置对应的dll文件,dll文件需要与jacob的jar相同版本,同时放到path路径(环境变量)下;正常java环境配置时,放jdk的bin目录下即可(配置jdk时会配置到path路径下),也可以是system32下(正常的path路径都有,正常。。)
(3)当将部署有jacob的tomcat的部署成服务使用,可能碰到Can't get object clsid from progid错误,猜测是因为需要权限,猜测。。;选择tomcat服务-》属性-》登录,改用账号登录(不使用默认的本系统账号),就可以了。(我是这样就成功了)
3、附录
(1)regsrv32 dll文件所在位置,可以将dll注册到注册表
(2)常量
private static final Integer FORMAT_PPT_IMAGES = 17; // ppt转图片宏值,图片类型为jpg
(3)ppt转换代码:
对于ppt转图片,尝试过很多种方法,最后确认使用jacob,虽然需要有windows系统和wps(或者office)这样的限制,但排版和图片质量相对来说就非常好了。
2、问题
(1)使用jacob之前,请先确定安装有wps(或者office)
(2)使用jacob时需要配置对应的dll文件,dll文件需要与jacob的jar相同版本,同时放到path路径(环境变量)下;正常java环境配置时,放jdk的bin目录下即可(配置jdk时会配置到path路径下),也可以是system32下(正常的path路径都有,正常。。)
(3)当将部署有jacob的tomcat的部署成服务使用,可能碰到Can't get object clsid from progid错误,猜测是因为需要权限,猜测。。;选择tomcat服务-》属性-》登录,改用账号登录(不使用默认的本系统账号),就可以了。(我是这样就成功了)
3、附录
(1)regsrv32 dll文件所在位置,可以将dll注册到注册表
(2)常量
private static final Integer FORMAT_PPT_IMAGES = 17; // ppt转图片宏值,图片类型为jpg
(3)ppt转换代码:
// 打开word应用程序 LOG.debug("打开ppt应用"); ActiveXComponent app = new ActiveXComponent( "PowerPoint.Application"); // 设置word不可见,office可能有限制 LOG.debug("设置可见性"); // app.setProperty("Visible", false); // 获取word中国所打开的文档,返回Documents对象 LOG.debug("打开ppt文件"); try { Dispatch files = app.getProperty("Presentations").toDispatch(); // 调用Documents对象中Open方法打开文档,并返回打开的文档对象Document Dispatch file = Dispatch.call(files, "open", sourceFile, false, true).toDispatch(); // 调用Document对象的SaveAs方法,将文档保存为pdf格式 LOG.debug("保存为图片-----------"); // Dispatch.call(doc, "ExportAsFixedFormat", outputFile, PPT_TO_PDF); Dispatch.call(file, "SaveAs", imageFile, FORMAT_PPT_IMAGES); // 关闭文档 LOG.debug("关闭文档"); // Dispatch.call(file, "Close", false); Dispatch.call(file, "Close"); } catch(Exception e) { // TODO: handle exception LOG.error("ppt to images error", e); throw e; } finally { // 关闭word应用程序 LOG.debug("关闭应用"); // app.invoke("Quit", 0); app.invoke("Quit"); }
相关文章推荐
- 如何使用 Beamer 创建演示文稿
- C#实现将PPT转换成HTML的方法
- 使用impress.js制作幻灯片
- java读取word-excel-ppt文件代码
- PHP读取PPT文件的方法
- java使用poi读取ppt文件和poi读取excel、word示例
- java实现PPT转PDF出现中文乱码问题的解决方法
- Python实现对PPT文件进行截图操作的方法
- Python输出PowerPoint(ppt)文件中全部文字信息的方法
- python实现向ppt文件里插入新幻灯片页面的方法
- PPT
- PPT无法输入中文
- 一篇实用的关于ppt的文档
- PPT图片模板等素材打包下载
- TECHED 2010 PPT
- 2010版PPT保存速度慢是咋回事?
- android Intent打开各种类型文件(PDF,PPT,WORD,EXCEL,CHM,H...
- impress.js使用教程