当前位置: 首页 > news >正文

汽车网站虚拟币充值 wordpress

汽车网站,虚拟币充值 wordpress,wordpress企业主题免费,小程序商店有哪些java调用jacob进行文件转换ppt转pdf或者png 前情提要 最近项目上,遇到一个复杂的ppt,最终要求是要将ppt每一页转成图片原本这个是不难,网上一搜一大堆案例,外加我本身也比较精通aspose,那还不是分分钟搞定。结果就是…

java调用jacob进行文件转换ppt转pdf或者png

前情提要

  • 最近项目上,遇到一个复杂的ppt,最终要求是要将ppt每一页转成图片
  • 原本这个是不难,网上一搜一大堆案例,外加我本身也比较精通aspose,那还不是分分钟搞定。
  • 结果就是客户的那个ppt,非常的恶心,应该是excel生成的柱状图嵌在ppt中,导致无论我使用各种方式转换都会发生缺字少图的情况
  • 所以万般无奈之下,选择使用最原始的jacob调用office或者wps组件来进行转换,这玩意的原理就是jacob调用windwos的com组件,调用的就是注册表中的office或者wps的组件
  • 这种方式的好处是速度快,转出来和原来的图基本一致,比较容易符合客户需求。缺点就是依赖原本服务器上office或者wps,然后也基本只能使用windows做服务器,转换整个过程都是不可知的,而且也不受jvm管控

核心方法类

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值为32Dispatch.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();}}

注意事项

  • 我遇到的情况是就算是wps或者office,把复杂的ppt转换为pdf还是不一定和原来抱持一样,但是直接转换为PNG图片,基本可以确保和你直接打开ppt效果一致,但是坑爹的点在于,转换PNG的方式,它是会生成一个文件夹,然后里面是幻灯片1.PNG这种格式,所以得再改名来符合需求,这个就很简单了,网上都是。
  • 还有一点就是 new ActiveXComponent("Powerpoint.Application") 这个Powerpoint.Application,可以在电脑的注册表上找到
  • 在这里插入图片描述
    在这里插入图片描述

所以当这一行报错时,看看电脑是否装了wps或者office

  • 另一个需要注意的点
//当文件占用无法删除时,wps没有影响依旧能调用SaveAs方法,但是office则会报错,这是我这次发现的区别,需要注意
File targetFile = new File(target);
if (targetFile.exists()) {targetFile.delete();
}
http://www.yayakq.cn/news/113701/

相关文章:

  • 搜索类的网站优点云服务器可以做两个网站吗
  • 免费单页网站建设自己搭建充值平台
  • 公司网站是否必须做可信认证怎么制作外贸网站
  • 网站建设分工案例潍坊注册公司流程和费用标准
  • 自己做的网站怎么传入外网科技小论文500字范文
  • 工信部 网站备案材料 复印件 电子版icp备案信息查询
  • 百度网站排名查询工具the author wordpress
  • 新楼盘网站模板网站后台建设协议书
  • 中国建设教育协会网站查318全讯申请网址
  • 名片在哪个网站可以做安溪哪里有学做网站
  • 怎样做网站性能优化郑州妇科医院哪个医院最好
  • 哪些网站可以做迁徙图深圳龙华是穷人区吗
  • 做网站的哪里好小说网站排名免费
  • 给菠菜网站做支付西城区网站建设推广seo
  • 个人网站阿里云空间可以做网站吗
  • 便捷网站建设公司360免费建站不要钱
  • 虹口北京网站建设郑州妇科医院免费咨询
  • 网站制作 南宁网站开发费用说明
  • 郑州个人网站制作公司豆瓣网站是怎么建设的
  • 网站打开速度概念做网站空间备案的职业
  • 门户网站开发技术 知乎做网站推广托管费用
  • 做动画人设有哪些网站可以借鉴程序员做的导航网站
  • 地方网站怎么做的长春建站模板制作
  • 盐城网站建设公司泉州百度网络推广
  • 网站建设nayuwangssh搭建wordpress
  • 遵义网站建设公司排名网站设计与网页制作
  • 成功的企业网站案例网站怎么访问自己做的网页
  • 佛山网站免费制作滁州seo网站推广
  • 凡科网网站怎么设置会员登录板块凡科建站官网登录
  • 网站搭建培训平台网站有哪些