今天給我的轉(zhuǎn)換服務(wù)器更新openoffice版本的時候·也順便搜索了下jodconverter的版本·在官網(wǎng)上目前還是 2.2.2 版本·但是在 google 的時候發(fā)現(xiàn)了 code 上 有 3.0的版本·就立刻下載下來在虛擬機器上做測試,測試后發(fā)現(xiàn) 3.0版本 的 jodconverter 做的很不錯·支持了服務(wù)器多進程,也就說明可以多線程轉(zhuǎn)換了,避免了轉(zhuǎn)換排隊現(xiàn)象。

1.下載安裝 openoffice 3.2,我的環(huán)境是ubuntu所以下載的是deb包,如果你是centos請下載rpm包。

ppt2pdf $> wget http://download.services.openoffice.org/files/localized/zh-CN/3.2.1/OOo_3.2.1_Linux_x86_install-deb_zh-CN.tar.gz ppt2pdf $> tar zxvf OOo_3.2.1_Linux_x86_install-deb_zh-CN.tar.gz ppt2pdf $> cd OOO320_m18_native_packed-1_zh-CN.9502 ppt2pdf $> cd DEBS ppt2pdf $> dpkg -i *.deb

2.然后下載中文字庫防止亂碼

ppt2pdf $> apt-get install language-pack-zh language-support-fonts-zh

3.下載jodconverter-core-3.0-beta-3-dist.zip(此步驟可濾過次步驟只是測試轉(zhuǎn)換是否成功)

ppt2pdf $> wget http://jodconverter.googlecode.com/files/jodconverter-core-3.0-beta-3-dist.zip ppt2pdf $> unzip jodconverter-core-3.0-beta-3-dist.zip #然后用winscp 上傳一個 ppt上來轉(zhuǎn)換· ppt2pdf $> ls daodan.ppt   jodconverter-core-3.0-beta-3 ppt2pdf $> java -jar jodconverter-core-3.0-SNAPSHOT/lib/jodconverter-core-3.0-SNAPSHOT.jar daodan.ppt 1.pdf Dec 29, 2010 4:39:29 PM org.artofsolving.jodconverter.office.ProcessPoolOfficeManager  INFO: ProcessManager implementation is UnixProcessManager Dec 29, 2010 4:39:29 PM org.artofsolving.jodconverter.office.OfficeProcess start INFO: starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir '/tmp/.jodconverter_socket_host-127.0.0.1_port-2002' Dec 29, 2010 4:39:30 PM org.artofsolving.jodconverter.office.OfficeProcess start INFO: started process; pid = 7108 Dec 29, 2010 4:39:30 PM org.artofsolving.jodconverter.office.OfficeConnection connect INFO: connected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' Dec 29, 2010 4:39:45 PM org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop INFO: stopping Dec 29, 2010 4:39:45 PM org.artofsolving.jodconverter.office.OfficeConnection$1 disposing INFO: disconnected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' Dec 29, 2010 4:39:45 PM org.artofsolving.jodconverter.office.ManagedOfficeProcess doEnsureProcessExited INFO: process exited with code 0 Dec 29, 2010 4:39:45 PM org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop INFO: stopped ppt2pdf $> ls 1.pdf  daodan.ppt   jodconverter-core-3.0-beta-3 

#可以用winscp 下載下來查看。
4.下載 jodconverter-tomcat-2.2.2.zip 和 jodconverter-sample-webapp

ppt2pdf $> wget 'http://downloads.sourceforge.net/project/jodconverter/JODConverter/2.2.2/jodconverter-tomcat-2.2.2.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fjodconverter%2Ffiles%2FJODConverter%2F2.2.2%2F&ts=1293612042&use_mirror=nchc'  ppt2pdf $> svn checkout http://jodconverter.googlecode.com/svn/trunk/jodconverter-sample-webapp jodconverter-sample-webapp  解壓 jodconverter-tomcat-2.2.2.zip ppt2pdf $> unzip jodconverter-tomcat-2.2.2.zip #刪除 2.2.2版本里的web應用程序 ppt2pdf $> rm jodconverter-tomcat-2.2.2/webapps/converter/* -rf  #編譯jodconverter-sample-webapp ppt2pdf $> cd jodconverter-sample-webapp/ ppt2pdf $> mvn package #復制編譯出來的 web應用程序進 jodconverter-tomcat-2.2.2 ppt2pdf $> cd target/jodconverter-sample-webapp-3.0-SNAPSHOT ppt2pdf $> cp WEB-INF  documentFormats.js  index.jsp ../jodconverter-tomcat-2.2.2/webapps/converter/ -R

5.啟動服務(wù)

ppt2pdf $> cd jodconverter-tomcat-2.2.2 ppt2pdf $> bin/startup.sh Using CATALINA_BASE:   /root/jodconverter-tomcat-2.2.2 Using CATALINA_HOME:   /root/jodconverter-tomcat-2.2.2 Using CATALINA_TMPDIR: /root/jodconverter-tomcat-2.2.2/temp Using JRE_HOME:       /usr

6.安裝 apache php php-pear
#我就用懶人模式安裝了·apt-get

ppt2pdf $> apt-get install apache2 php5 php-pear

# 安裝 pear 的 Net_URL2

ppt2pdf $> pear install Net_URL2-0.3.1 # 下載安裝 HTTP_Request2 ppt2pdf $> wget http://download.pear.php.net/package/HTTP_Request2-0.5.2.tgz ppt2pdf $> tar zxvf HTTP_Request2-0.5.2.tgz ppt2pdf $> cd HTTP_Request2-0.5.2 ppt2pdf $> cp Request2.php /usr/share/php/HTTP/ ppt2pdf $> cp Request2 /usr/share/php/HTTP/ -R

7.創(chuàng)建一個convert.php轉(zhuǎn)換 ppt2pdf 的例子
#打開瀏覽查看交互頁面

#下面我們創(chuàng)建無交互php程序。

ppt2pdf $> cd /var/www ppt2pdf $> vim convert.php
< ?php require_once 'HTTP/Request2.php';  class DocumentConverterClient {      var $url = 'http://localhost:8080/converter/converted/document.pdf';      function convert($inputFile, $outputType) {         $request = new HTTP_Request2($this->url);         $request->setMethod(HTTP_Request2::METHOD_POST)             ->setHeader('Content-Type', 'multipart/form-data')             ->addPostParameter('outputFormat', $outputType)             ->setBody($inputData);         $request->addUpload('inputDocument', $inputFile);          return $request->send()->getBody();     } }  $documentConverter = new DocumentConverterClient();  $inputFile = 'daodan.ppt';               # 要轉(zhuǎn)換的 ppt|doc|pptx|docx $outputFile = 'daodan.pdf';             # 轉(zhuǎn)出來的 pdf $outputType = 'pdf';  $outputData = $documentConverter->convert($inputFile, $outputType); file_put_contents($outputFile, $outputData); ?>

#把傳進來的ppt 復制到 www 目錄下,給 www 賦予 apache 可寫權(quán)限

ppt2pdf $> cp ../daodan.ppt /var/www/ ppt2pdf $> chown www-data /var/www

8.打開瀏覽器測試。

#使用 winscp 下載 轉(zhuǎn)好的 pdf 本地查看

PS:他的多線程,我還未測試,我是從編譯的時候,發(fā)現(xiàn)可以多線程的,再我測試后,會發(fā)布。

轉(zhuǎn)載請注明:文章轉(zhuǎn)載自:Eric's linux and nginx! (http://www.nginxs.com)
本文地址:http://www.nginxs.com/linux/393.html