2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

仿百度文庫解決方案(三)——利用JCom調用MS Office或者Acrobat API轉換文檔為PDF

 Tom.Lin 2014-01-13

目錄

仿百度文庫解決方案(一)——總體思路

仿百度文庫解決方案(二)——利用Jacob調用MS Office轉換文檔為PDF

仿百度文庫解決方案(三)——利用JCom調用MS Office或者Acrobat API轉換文檔為PDF

仿百度文庫解決方案(四)——利用JODConverter調用OpenOffice.org服務轉換文檔為PDF

仿百度文庫解決方案(五)——利用SWFTools轉換PDF文檔為SWF

仿百度文庫解決方案(六)——利用FlexPaper顯示Flash(SWF)

 

1. JCom簡介

  JCom是日本的一個開源項目,其目的同前面介紹的Jacob一樣也是為了讓Java程序能夠訪問Windows平臺上的COM組件。利用JCom,可以在Java中控制幾乎所有的COM對象,而且它還帶有一些用于Excel操作的強大的輔助類。

  使用Jcom主要用到ReleaseManager和IDispatch類。ReleaseManager類相當于一個容器,管理機器上的COM組件。配合IDispatch類可以創(chuàng)建COM組件對象。例如創(chuàng)建Excel應用程序的COM對象:

  ReleaseManager rmExcel = new ReleaseManager( );

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

  另外,在程序結束的最后階段需要調用ReleaseManager類中的release( )方法對創(chuàng)建的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是日本人開發(fā)的一個開源項目,和Jacob類似,其也是用來調用COM自動化組件。自然JDK的運行環(huán)境也是必不可少。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系統(tǒng)System32目錄下,如果不想污染System32目錄中的dll文件,也可以將其放置到本機JDK安裝目錄下的bin文件夾中。

2.3 實現(xiàn)

  類似Jacob轉換文檔為PDF,轉換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");//啟動word
                app.put("Visible", false);    //設置word不可見
                IDispatch docs = (IDispatch) app.get("Documents");    //獲得word中所有打開的文檔
                IDispatch doc = (IDispatch) docs.method("Open", new Object[]{inputFile,false,true});//打開文檔
                doc.method("SaveAs", new Object[]{pdfFile,17});//轉換文檔為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調用Acrobat轉換Office文檔為PDF格式

  除了調用MS Office轉換文檔為PDF的方法之外,還可以調用Adobe Acrobat API轉換Office文檔為PDF格式,下面是JCom的實現(xiàn)方法,當然也可以用Jacob實現(xiàn),這里就不做研究了。

復制代碼
 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

  轉載說明本文系作者原創(chuàng),轉載時請注明文章出處:肖恩也有夢想 博客園,請尊重作者的勞動成果,謝謝!

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多