仿百度文库解决方案之三:JCom调用转换

1. JCom简介

公司主营业务:成都网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出凌源免费做网站回馈大家。

JCom是日本的一个开源项目,其目的同前面介绍的Jacob一样也是为了让Java程序能够访问Windows平台上的COM组件。利用JCom,可以在Java中控制几乎所有的COM对象,而且它还带有一些用于Excel操作的强大的辅助类。

使用Jcom主要用到ReleaseManager和IDispatch类。ReleaseManager类相当于一个容器,管理机器上的COM组件。配合IDispatch类可以创建COM组件对象。例如创建Excel应用程序的COM对象:

 
 
 
  1.   ReleaseManager rmExcel = new ReleaseManager( );  
  2.   IDispatch excelApp = new IDispatch(rmExcel,”Excel.Application”); 

另外,在程序结束的最后阶段需要调用ReleaseManager类中的release( )方法对创建的ReleaseManager进行资源释放,以免内存溢出。

IDispatch类和Jacob中的Dispatch类相似,代表着COM组件对象,提供了访问微软COM组件对象的属性和方法的接口。IDispatch类中常用的方法如下:

get( )方法:获取COM组件对象的属性,返回一个java.lang.Object类型值。

put( )方法:设置COM组件对象的属性,不返回值。

invoke( )方法:调用COM组件对象的方法,返回一个java.lang.Object类型值。不推荐使用,建议使用method方法。

method( )方法:和invoke( )方法功能一样。

2. JCom调用MS Office COM组件转换Office文档为PDF

2.1 前提条件

JCom是日本人开发的一个开源项目,和Jacob类似,其也是用来调用COM自动化组件。自然JDK的运行环境也是必不可少。JCom也可以利用Microsoft Office API转换文档,那么需要安装Microsoft Office2007或者以上版本,同时Office2007仍需要安装有Microsoft Save as PDF or XPS插件。JCom除了调用Microsoft Office API转换文档为PDF格式的方法之外,还可以利用Adobe Acrobat软件的CreatePDF函数直接将Office格式的文档转换为PDF。因此,如果需要使用Adobe Acrobat转换文档,需要再安装有Adobe Acrobat软件。

2.2 安装配置

下载JCom包,将其解压缩后,提取其中的jcom.jar包配置到Java项目的类路径中,同时也需要将其中的jcom.dll文件放置到windows系统System32目录下,如果不想污染System32目录中的dll文件,也可以将其放置到本机JDK安装目录下的bin文件夹中。

2.3 实现

类似Jacob转换文档为PDF,转换Word为PDF格式的代码如下

 
 
 
  1. JCom调用MS Office转换word为PDF源代码   
  2.  
  3. public static void word2PDF(String inputFile,String pdfFile){  
  4.         ReleaseManager rm = null;  
  5.         IDispatch app = null;  
  6.         try {  
  7.                 rm = new ReleaseManager();  
  8.                 app = new IDispatch(rm, "Word.Application");//启动word  
  9.                 app.put("Visible", false);    //设置word不可见  
  10.                 IDispatch docs = (IDispatch) app.get("Documents");    //获得word中所有打开的文档  
  11.                 IDispatch doc = (IDispatch) docs.method("Open", new Object[]{inputFile,false,true});//打开文档  
  12.                 doc.method("SaveAs", new Object[]{pdfFile,17});//转换文档为pdf格式  
  13.                 doc.method("Close", new Object[]{false});  
  14.                 app.method("Quit", null);  
  15.         } catch (Exception e) {  
  16.                  e.printStackTrace();  
  17.         } finally {  
  18.                 try {  
  19.                         app=null;  
  20.                         rm.release();  
  21.                         rm = null;  
  22.                 } catch (Exception e) {  
  23.                      e.printStackTrace();  
  24.                 }  
  25.         }  
  26.     } 

3. JCom调用Acrobat转换Office文档为PDF格式

除了调用MS Office转换文档为PDF的方法之外,还可以调用Adobe Acrobat API转换Office文档为PDF格式,下面是JCom的实现方法,当然也可以用Jacob实现,这里就不做研究了。

 
 
 
  1. public void convert2PDF(String inputFile, String pdfFile)  {  
  2.            
  3.    
  4.          ReleaseManager rm = new ReleaseManager();  
  5.          IDispatch app;  
  6.          try {  
  7.              app = new IDispatch(rm, "PDFMakerAPI.PDFMakerApp");  
  8.              app.method("CreatePDF",new Object[]{inputFile,pdfFile});  
  9.              System.out.println("conversion completed!");  
  10.          } catch (JComException e) {  
  11.              e.printStackTrace();  
  12.          }finally{  
  13.               app=null;  
  14.               rm.release();  
  15.               rm = null;  
  16.          }     
  17.          
  18.      } 

源代码下载地址:DocConverter

原文链接:http://www.cnblogs.com/luckyxiaoxuan/archive/2012/06/13/2548510.html

网站标题:仿百度文库解决方案之三:JCom调用转换
转载源于:http://www.shufengxianlan.com/qtweb/news40/82990.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联