成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

仿百度文庫解決方案之四:JODConverter調用轉換

開發 前端
你可以將JODConverter內嵌在Java應用程序里,也可以單獨作為命令行由腳本調用,更可以應用為網頁程序或者Web Service以供網絡應用。

1. JODConverter簡介

JODConverter,是一個Java的OpenDocument文件轉換器,可以進行許多文件格式的轉換。它依賴于OpenOffice.org或者LibreOffice提供的服務來進行轉換,它能將Microsoft Office文檔(Word,Excel,PowerPoint)轉換為PDF格式。

你可以將JODConverter內嵌在Java應用程序里,也可以單獨作為命令行由腳本調用,更可以應用為網頁程序或者Web Service以供網絡應用。

(1)     轉換文檔范例:

  1. OfficeManager officeManager = new DefaultOfficeManagerConfiguration( ).buildOfficeManager( );  
  2. //啟動OpenOffice服務  
  3. officeManager.start( );  
  4. //執行轉換  
  5. OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);  
  6. converter.convert(new File(“test.odt”), new File(“test.pdf”));  
  7. //停止服務  
  8. officeManager.stop( ); 

(2)     主要類說明:

OfficeManager是一個接口,主要定義了三個方法:

public void start( )啟動OpenOffice服務

public void stop( )停止OpenOffice服務

public void execute(OfficeTask task)執行轉換任務

DefaultOfficeManagerConfiguration是一個實現了OfficeManager接口的實體類,其提供了相關方法配置OpenOffice.org,比如:

public DefaultOfficeManagerConfiguration setOfficeHome(String officeHome)設置OpenOffice.org或者LibreOffice安裝目錄,windows下默認值為” C:\Program Files\OpenOffice.org 3”(LibreOffice進行相應更改),因此如果OpenOffice.org安裝在別的目錄,必須設置此項。

public DefaultOfficeManagerConfiguration setConnectionProtocol(OfficeConnectionProtocol conn)設置連接協議,確定使用管道通信,還是socekt通信。

pubcli DefaultOfficeManagerConfiguration setTemplateProfileDir(File templateProfileDir)設定臨時目錄。

除以上幾個方法之外,DefaultOfficeManagerConfiguration還提供了別的配置OpenOffice.org的方法,具體方法可以查詢JODConverter API手冊。配置完之后,必須要執行方法buildOfficeManager(),實現真正的配置。

OfficeDocumentConverter中主要包含convert方法,該方法實際上調用的是實現OfficeManager接口的類中的execute方法。

#p#

2. 利用JODConverter轉化文檔為PDF格式實現

2.1 算法設計

算法流程圖如圖4-1所示:

JODConverter調用OpenOffice服務轉換文檔為PDF算法

圖4-1 JODConverter調用OpenOffice服務轉換文檔為PDF算法

第一步,啟動OpenOffice服務。例如,首先設定DefaultOfficeManagerConfiguration相關參數來配置OpenOffice,并得到OfficeManager。調用OfficeManager實現類的start方法啟動服務。

第二步,轉換文檔。例如,初始化OfficeDocumentConverter,調用其convert方法執行轉換。

第三步,停止OpenOffice服務。例如,調用OfficeManager實現類的stop方法停止方法。

2.2 安裝配置

JODConverter是一個開源文檔轉換工具,既可以應用于Linux平臺,也可其應用于Windows平臺。其基于OpenOffice.org或者LibreOffice。因此,文檔轉換服務器上必須安裝有OpenOffice或者LibreOffice。

目前最新版本的JODConverter為JODConverter3.0,它要求JDK1.5以上的Java環境,同時還需要OpenOffice.org 3.x版本。本文基于最新版本3.0設計實現,如果是版本為2,則有不同的實現。(版本2需要手動啟動OpenOffice.org服務,或者創建Windows服務設置為開機啟動,而版本3提供了開啟服務的接口,因此筆者用的是版本3)

2.3 實現代碼

  1. package com.converter.pdfConverter;  
  2. import java.io.File;  
  3. import java.io.FileNotFoundException;  
  4. import org.artofsolving.jodconverter.OfficeDocumentConverter;  
  5. import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;  
  6. import org.artofsolving.jodconverter.office.OfficeManager;  
  7. import com.converter.utils.FileUtils;  
  8. public class OpenOfficePDFConverter implements PDFConverter{   
  9.     private static  OfficeManager officeManager;  
  10.     private static String OFFICE_HOME = "D:\\Program Files\\OpenOffice.org 3";  
  11.     private static int port[] = {8100};  
  12.     public  void convert2PDF(String inputFile, String pdfFile) {  
  13.           
  14.         if(inputFile.endsWith(".txt")){  
  15.             String odtFile = FileUtils.getFilePrefix(inputFile)+".odt";  
  16.             if(new File(odtFile).exists()){  
  17.                 System.out.println("odt文件已存在!");  
  18.                 inputFile = odtFile;  
  19.             }else{  
  20.                 try {  
  21.                     FileUtils.copyFile(inputFile,odtFile);  
  22.                     inputFile = odtFile;  
  23.                 } catch (FileNotFoundException e) {  
  24.                     System.out.println("文檔不存在!");  
  25.                     e.printStackTrace();  
  26.                 }  
  27.             }  
  28.         }          
  29.         startService();  
  30.         System.out.println("進行文檔轉換轉換:" + inputFile + " --> " + pdfFile);  
  31.         OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);  
  32.         converter.convert(new File(inputFile),new File(pdfFile));  
  33.         stopService();  
  34.         System.out.println();  
  35.     }  
  36.     public void convert2PDF(String inputFile) {  
  37.         String pdfFile = FileUtils.getFilePrefix(inputFile)+".pdf";  
  38.         convert2PDF(inputFile,pdfFile);          
  39.     }      
  40.     public static void startService(){  
  41.         DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();  
  42.         try {  
  43.           System.out.println("準備啟動服務....");  
  44.             configuration.setOfficeHome(OFFICE_HOME);//設置OpenOffice.org安裝目錄  
  45.             configuration.setPortNumbers(port); //設置轉換端口,默認為8100  
  46.             configuration.setTaskExecutionTimeout(1000 * 60 * 5L);//設置任務執行超時為5分鐘  
  47.             configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);//設置任務隊列超時為24小時           
  48.             officeManager = configuration.buildOfficeManager();  
  49.             officeManager.start();    //啟動服務  
  50.             System.out.println("office轉換服務啟動成功!");  
  51.         } catch (Exception ce) {  
  52.             System.out.println("office轉換服務啟動失敗!詳細信息:" + ce);  
  53.         }  
  54.     }      
  55.     public static void stopService(){  
  56.           System.out.println("關閉office轉換服務....");  
  57.             if (officeManager != null) {  
  58.                 officeManager.stop();  
  59.             }  
  60.             System.out.println("關閉office轉換成功!");  
  61.     }  

源代碼下載地址:DocConverter

原文鏈接:http://www.cnblogs.com/luckyxiaoxuan/archive/2012/06/14/2549012.html

【編輯推薦】

 

責任編輯:張偉 來源: 肖恩也有夢想的博客
相關推薦

2012-06-19 13:25:15

Web

2012-06-18 16:37:41

Web

2012-06-18 16:29:48

Web

2012-06-19 13:45:57

Web

2012-06-19 13:42:08

Web

2012-07-16 14:43:32

silverlight

2015-10-28 13:40:28

高仿百度糯米源碼

2011-06-02 17:28:24

網站收錄

2012-10-19 09:47:30

百度云百度音樂云計算

2012-11-27 09:51:54

百度三星云解決方案

2011-06-29 08:31:56

收錄

2011-05-24 10:40:12

SEO

2015-12-02 17:22:03

百度地圖

2011-10-21 09:28:25

百度地圖API

2020-09-15 19:29:40

搜索
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 超碰人人人 | 欧美成人激情视频 | 超碰在线观看97 | 在线日韩不卡 | 国产精品一区一区三区 | 99欧美精品 | 久久成人精品 | 99精品观看| 精品久久久久国产免费第一页 | 中文在线一区二区 | 精品一区二区三区在线观看国产 | 天天操夜夜拍 | 国产成人高清成人av片在线看 | 一区欧美| 在线观看av网站永久 | 国产真实精品久久二三区 | 91看片网站| 成人在线一区二区三区 | 不卡一区二区在线观看 | 91在线看片| 四虎永久在线精品免费一区二 | 亚洲一区二区免费看 | 韩日av在线 | 日本粉嫩一区二区三区视频 | 精品成人佐山爱一区二区 | 亚av在线 | 亚洲一区二区三区四区五区中文 | 激情久久av一区av二区av三区 | 天堂一区二区三区四区 | 日韩二区| 国产一二三区精品视频 | 91色视频在线| 99国产精品久久久久 | 精品三级在线观看 | 亚洲 成人 av | 成人激情视频在线播放 | 亚洲欧美视频 | 国产成人精品一区二区三区网站观看 | 久www | 日本天天色 | 久久久精品综合 |