日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
仿百度文庫(kù)解決方案之四:JODConverter調(diào)用轉(zhuǎn)換

1. JODConverter簡(jiǎn)介

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括湛江網(wǎng)站建設(shè)、湛江網(wǎng)站制作、湛江網(wǎng)頁(yè)制作以及湛江網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,湛江網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到湛江省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

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

你可以將JODConverter內(nèi)嵌在Java應(yīng)用程序里,也可以單獨(dú)作為命令行由腳本調(diào)用,更可以應(yīng)用為網(wǎng)頁(yè)程序或者Web Service以供網(wǎng)絡(luò)應(yīng)用。

(1)     轉(zhuǎn)換文檔范例:

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

(2)     主要類說(shuō)明:

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

public void start( )啟動(dòng)OpenOffice服務(wù)

public void stop( )停止OpenOffice服務(wù)

public void execute(OfficeTask task)執(zhí)行轉(zhuǎn)換任務(wù)

DefaultOfficeManagerConfiguration是一個(gè)實(shí)現(xiàn)了OfficeManager接口的實(shí)體類,其提供了相關(guān)方法配置OpenOffice.org,比如:

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

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

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

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

OfficeDocumentConverter中主要包含convert方法,該方法實(shí)際上調(diào)用的是實(shí)現(xiàn)OfficeManager接口的類中的execute方法。

#p#

2. 利用JODConverter轉(zhuǎn)化文檔為PDF格式實(shí)現(xiàn)

2.1 算法設(shè)計(jì)

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

圖4-1 JODConverter調(diào)用OpenOffice服務(wù)轉(zhuǎn)換文檔為PDF算法

第一步,啟動(dòng)OpenOffice服務(wù)。例如,首先設(shè)定DefaultOfficeManagerConfiguration相關(guān)參數(shù)來(lái)配置OpenOffice,并得到OfficeManager。調(diào)用OfficeManager實(shí)現(xiàn)類的start方法啟動(dòng)服務(wù)。

第二步,轉(zhuǎn)換文檔。例如,初始化OfficeDocumentConverter,調(diào)用其convert方法執(zhí)行轉(zhuǎn)換。

第三步,停止OpenOffice服務(wù)。例如,調(diào)用OfficeManager實(shí)現(xiàn)類的stop方法停止方法。

2.2 安裝配置

JODConverter是一個(gè)開源文檔轉(zhuǎn)換工具,既可以應(yīng)用于Linux平臺(tái),也可其應(yīng)用于Windows平臺(tái)。其基于OpenOffice.org或者LibreOffice。因此,文檔轉(zhuǎn)換服務(wù)器上必須安裝有OpenOffice或者LibreOffice。

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

2.3 實(shí)現(xiàn)代碼

 
 
 
 
  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("進(jìn)行文檔轉(zhuǎn)換轉(zhuǎn)換:" + 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("準(zhǔn)備啟動(dòng)服務(wù)....");
  44.             configuration.setOfficeHome(OFFICE_HOME);//設(shè)置OpenOffice.org安裝目錄
  45.             configuration.setPortNumbers(port); //設(shè)置轉(zhuǎn)換端口,默認(rèn)為8100
  46.             configuration.setTaskExecutionTimeout(1000 * 60 * 5L);//設(shè)置任務(wù)執(zhí)行超時(shí)為5分鐘
  47.             configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);//設(shè)置任務(wù)隊(duì)列超時(shí)為24小時(shí)         
  48.             officeManager = configuration.buildOfficeManager();
  49.             officeManager.start();    //啟動(dòng)服務(wù)
  50.             System.out.println("office轉(zhuǎn)換服務(wù)啟動(dòng)成功!");
  51.         } catch (Exception ce) {
  52.             System.out.println("office轉(zhuǎn)換服務(wù)啟動(dòng)失敗!詳細(xì)信息:" + ce);
  53.         }
  54.     }    
  55.     public static void stopService(){
  56.           System.out.println("關(guān)閉office轉(zhuǎn)換服務(wù)....");
  57.             if (officeManager != null) {
  58.                 officeManager.stop();
  59.             }
  60.             System.out.println("關(guān)閉office轉(zhuǎn)換成功!");
  61.     }
  62. }

源代碼下載地址:DocConverter


標(biāo)題名稱:仿百度文庫(kù)解決方案之四:JODConverter調(diào)用轉(zhuǎn)換
轉(zhuǎn)載來(lái)源:http://www.5511xx.com/article/djoopje.html