ドキュメント変換サーバを導入

JODConverterを利用して、OfficeファイルをPDFファイル等に変換する
OpenOffice.orgを導入するのは、同梱されているsofficeをファイル変換エンジンとして使用するため。
JODConverter-Tomcatを導入することにより、WEBから変換が可能となる。

Java導入

ダウンロード

公式からJDK1.6を導入(JREでよい)
http://java.sun.com/products/archive/

インストール
# sh jdk-6u22-linux-i586-rpm.bin 

Java動作確認

# java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

OpenOffice.org導入

CentOS5.5は、1:3.1.1-19.5.el5_5.1。3.1系なのでパッケージからでもよいかも?

ダウンロード
# wget http://download.services.openoffice.org/files/localized/ja/3.2.1/OOo_3.2.1_Linux_x86_install-***rpm_ja.tar.gz
解凍・インストール

全部必要なのかは疑問…。その他必要なモジュールはyumで依存解決。

# OOo_3.2.1_Linux_x86_install-rpm_ja.tar.gz
# cd OOO320_m18_native_packed-1_ja.9502/RPMS
# yum -y localinstall --nogpgcheck *.rpm

soffice 動作確認

sofficeを実行するシェルを作成し、実行

# vi /tmp/ooo.sh
#! /bin/sh
/opt/openoffice.org3/program/soffice -headless -nofirststartwizard -accept="socket,port=8100\;urp\;" &

# chmod +x /tmp/openoffice.sh
# sh /tmp/openoffice.sh
ポートの確認
# netstat -anp |grep 8100
tcp        0      0 127.0.0.1:8100              0.0.0.0:*                   LISTEN      3003/soffice.bin
soffice停止
# killall -9 soffice.bin

JODConverter 導入

ダウンロード
# cd /usr/local/src
# wget http://sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fjodconverter%2FJODConverter%2F2.2.2%2Fjodconverter-2.2.2.zip
解凍・インストール
# unzip jodconverter-2.2.2.zip
# mv jodconverter-2.2.2 /usr/local/bin
動作確認

テスト用テキストを作成して、変換

# cd /usr/local/bin/jodconverter-2.2.2
# echo "aiueo" >/tmp/test.txt
# sh /tmp/ooo.sh
# java -jar jodconverter-cli-2.2.0.jar -f pdf /tmp/test.txt
2010/11/06 16:19:55 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection connect
情報: connected
2010/11/06 16:19:55 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection disposing
情報: disconnected

JODConverter-Tomcat 導入

ダウンロード
# wget http://sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fjodconverter%2FJODConverter%2F2.2.2%2Fjodconverter-tomcat-2.2.2.zip
解凍・インストール
# unzip jodconverter-tomcat-2.2.2.zip
# mv jodconverter-tomcat-2.2.2 /usr/local/bin
起動

Tomcatを実行するシェルを作成し、実行
環境変数JAVA_HOMEが必須となる。

# vi /tmp/tom.sh
#! /bin/sh
export JAVA_HOME=/usr/java/jdk1.6.0_22/
/usr/local/bin/jodconverter-tomcat-2.2.2/bin/startup.sh

# chmod +x /tmp/tom.sh
# sh /tmp/tom.sh 
Using CATALINA_BASE:   /usr/local/bin/jodconverter-tomcat-2.2.2
Using CATALINA_HOME:   /usr/local/bin/jodconverter-tomcat-2.2.2
Using CATALINA_TMPDIR: /usr/local/bin/jodconverter-tomcat-2.2.2/temp
Using JRE_HOME:       /usr/java/jdk1.6.0_22/
JODConverter-Tomcat 動作確認
# netstat -anp | grep 8080
tcp        0      0 :::8080                     :::*                        LISTEN      22608/java  
WEBブラウザで、以下に接続する

http://Server:8080/converter/

テキストファイルを変換しようとしたところのキャプチャ
http://lh6.ggpht.com/_HFaJmc3kKc4/TNUGXgXayHI/AAAAAAAAAE4/VkkvDwwdNSw/JODConverter.png

ポート

8080/tcpTomcat

soffice サービス化

自動起動スクリプト作成

# vi /etc/init.d/ooo.sh
#!/bin/bash
# openoffice.org  headless server script
#
# chkconfig: 2345 80 30
# description: headless openoffice server script
# processname: openoffice
# 
# Author: Vic Vijayakumar
# Modified by Federico Ch. Tomasczik
#
OOo_HOME=/opt/openoffice.org3
SOFFICE_PATH=$OOo_HOME/program/soffice
PIDFILE=/var/run/openoffice-server.pid

set -e

case "$1" in
    start)
    if [ -f $PIDFILE ]; then
      echo "OpenOffice headless server has already started."
      sleep 5
      exit
    fi
      echo "Starting OpenOffice headless server"
      $SOFFICE_PATH -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1
      touch $PIDFILE
    ;;
    stop)
    if [ -f $PIDFILE ]; then
      echo "Stopping OpenOffice headless server."
      killall -9 soffice && killall -9 soffice.bin
      rm -f $PIDFILE
      exit
    fi
      echo "Openoffice headless server is not running."
      exit
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
esac
exit 0
実行権付与
# chmod +x /etc/rc.d/init.d/ooo
サービス追加
# chkconfig --add ooo
# chkconfig ooo on
サービス起動
# service ooo start

Tomcat サービス化

oooと同じ感じで作成。