新聞中心
1. JCom簡(jiǎn)介

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出凌源免費(fèi)做網(wǎng)站回饋大家。
JCom是日本的一個(gè)開(kāi)源項(xiàng)目,其目的同前面介紹的Jacob一樣也是為了讓Java程序能夠訪問(wèn)Windows平臺(tái)上的COM組件。利用JCom,可以在Java中控制幾乎所有的COM對(duì)象,而且它還帶有一些用于Excel操作的強(qiáng)大的輔助類(lèi)。
使用Jcom主要用到ReleaseManager和IDispatch類(lèi)。ReleaseManager類(lèi)相當(dāng)于一個(gè)容器,管理機(jī)器上的COM組件。配合IDispatch類(lèi)可以創(chuàng)建COM組件對(duì)象。例如創(chuàng)建Excel應(yīng)用程序的COM對(duì)象:
- ReleaseManager rmExcel = new ReleaseManager( );
- IDispatch excelApp = new IDispatch(rmExcel,”Excel.Application”);
另外,在程序結(jié)束的最后階段需要調(diào)用ReleaseManager類(lèi)中的release( )方法對(duì)創(chuàng)建的ReleaseManager進(jìn)行資源釋放,以免內(nèi)存溢出。
IDispatch類(lèi)和Jacob中的Dispatch類(lèi)相似,代表著COM組件對(duì)象,提供了訪問(wèn)微軟COM組件對(duì)象的屬性和方法的接口。IDispatch類(lèi)中常用的方法如下:
get( )方法:獲取COM組件對(duì)象的屬性,返回一個(gè)java.lang.Object類(lèi)型值。
put( )方法:設(shè)置COM組件對(duì)象的屬性,不返回值。
invoke( )方法:調(diào)用COM組件對(duì)象的方法,返回一個(gè)java.lang.Object類(lèi)型值。不推薦使用,建議使用method方法。
method( )方法:和invoke( )方法功能一樣。
2. JCom調(diào)用MS Office COM組件轉(zhuǎn)換Office文檔為PDF
2.1 前提條件
JCom是日本人開(kāi)發(fā)的一個(gè)開(kāi)源項(xiàng)目,和Jacob類(lèi)似,其也是用來(lái)調(diào)用COM自動(dòng)化組件。自然JDK的運(yùn)行環(huán)境也是必不可少。JCom也可以利用Microsoft Office API轉(zhuǎn)換文檔,那么需要安裝Microsoft Office2007或者以上版本,同時(shí)Office2007仍需要安裝有Microsoft Save as PDF or XPS插件。JCom除了調(diào)用Microsoft Office API轉(zhuǎn)換文檔為PDF格式的方法之外,還可以利用Adobe Acrobat軟件的CreatePDF函數(shù)直接將Office格式的文檔轉(zhuǎn)換為PDF。因此,如果需要使用Adobe Acrobat轉(zhuǎn)換文檔,需要再安裝有Adobe Acrobat軟件。
2.2 安裝配置
下載JCom包,將其解壓縮后,提取其中的jcom.jar包配置到Java項(xiàng)目的類(lèi)路徑中,同時(shí)也需要將其中的jcom.dll文件放置到windows系統(tǒng)System32目錄下,如果不想污染System32目錄中的dll文件,也可以將其放置到本機(jī)JDK安裝目錄下的bin文件夾中。
2.3 實(shí)現(xiàn)
類(lèi)似Jacob轉(zhuǎn)換文檔為PDF,轉(zhuǎn)換Word為PDF格式的代碼如下
- JCom調(diào)用MS Office轉(zhuǎn)換word為PDF源代碼
- public static void word2PDF(String inputFile,String pdfFile){
- ReleaseManager rm = null;
- IDispatch app = null;
- try {
- rm = new ReleaseManager();
- app = new IDispatch(rm, "Word.Application");//啟動(dòng)word
- app.put("Visible", false); //設(shè)置word不可見(jiàn)
- IDispatch docs = (IDispatch) app.get("Documents"); //獲得word中所有打開(kāi)的文檔
- IDispatch doc = (IDispatch) docs.method("Open", new Object[]{inputFile,false,true});//打開(kāi)文檔
- doc.method("SaveAs", new Object[]{pdfFile,17});//轉(zhuǎn)換文檔為pdf格式
- doc.method("Close", new Object[]{false});
- app.method("Quit", null);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- app=null;
- rm.release();
- rm = null;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
3. JCom調(diào)用Acrobat轉(zhuǎn)換Office文檔為PDF格式
除了調(diào)用MS Office轉(zhuǎn)換文檔為PDF的方法之外,還可以調(diào)用Adobe Acrobat API轉(zhuǎn)換Office文檔為PDF格式,下面是JCom的實(shí)現(xiàn)方法,當(dāng)然也可以用Jacob實(shí)現(xiàn),這里就不做研究了。
- public void convert2PDF(String inputFile, String pdfFile) {
- ReleaseManager rm = new ReleaseManager();
- IDispatch app;
- try {
- app = new IDispatch(rm, "PDFMakerAPI.PDFMakerApp");
- app.method("CreatePDF",new Object[]{inputFile,pdfFile});
- System.out.println("conversion completed!");
- } catch (JComException e) {
- e.printStackTrace();
- }finally{
- app=null;
- rm.release();
- rm = null;
- }
- }
源代碼下載地址:DocConverter
原文鏈接:http://www.cnblogs.com/luckyxiaoxuan/archive/2012/06/13/2548510.html
文章標(biāo)題:仿百度文庫(kù)解決方案之三:JCom調(diào)用轉(zhuǎn)換
URL網(wǎng)址:http://m.5511xx.com/article/dphcipg.html


咨詢(xún)
建站咨詢(xún)
