【ハウツー】
ワードもエクセルもPDFに変換、サーバサイドJavaで - JOOConverter
2006/07/21
OpenOffice.orgといえば、いわずと知れた統合オフィスアプリケーションだ。最近ではODFをめぐって話題にのぼることも多い。JOOConverterはJOOConverterはOpenOffice.orgを使ってデータ変換を実施するためのJavaライブラリで、JavaとOpenOffice.orgを結びつける面白いアプリケーションだ。
JOOConverter 2.0.0登場
Art of Solving, Mirko Nasato氏は13日(米国時間)、JOOConverterの最新版となるJOOConverter 2.0.0を公開した。JOOConverterはオフィスドキュメントの変換を実施するJavaライブラリ。GNU LESSER GENERAL PUBLIC LICENSE Version 2.1のもとで公開されているFLOSS(Free/Libre/Open-Source Software)で、実際の変換にはOpenOffice.org 2.0が使われる。
JOOConverter 2.0.0における主な変更は次のとおり。
- コンバータWebアプリケーションの追加
- コマンドとして動作する機能を追加
- いくつかのJava仮想マシンにおいてXStreamに関するエラーが発生するのを避けるためにDocumentFormatにデフォルトコンストラクタを追加
- サードパーティライブラリを最新版へ更新
- カスタムIOをJakarta Commons IOへ変更
- 試験的にHTML/XHTML出力機能を追加
- いくつかのバグの修正
JOOConverter 2.0.0はJava 1.3かそれ以降の環境で動作する。Webアプリケーションとして動作させる場合には、Apache Tomcat 4.x以降など、Servlet 2.3以降のコンテナに対応したアプリケーションサーバがあればいい。
JOOConverterでどこでもPDF!
JOOConverter 2.0.0には単体でコマンドとして使えるほか、Webアプリケーションも配布されている。Webアプリケーションを動作させてみよう。
JOOConverterはデータの変換そのものにはOpenOffice.orgを使う。まず最初にOpenOffice.orgをサーバとして起動しておく必要がある。バージョンはOpenOffice.org 2.0.3かそれ以降が必要。2.0.2にはPDF変換に問題があって動作しないからだ。起動はプロンプト1のように実行する。サーバとして動かし続けるならdaemon(1)コマンドを使うといい。もしdaemon(1)コマンドが用意されていないならバックエンドで起動しておくだけでもいい。
プロンプト1 OpenOffoce.org をサーバとして実行
次にJOOConverter Webアプリケーションをデプロイする。Apache Tomcat 5.5を使っているなら、「${CATALINA_HOME}/webapps/」に「jooconverter-2.0.0.war」ファイルをコピーするだけでいい。
デプロイしたら「http://localhost:8080/jooconverter-2.0.0/」にアクセスする。図1のような画面が表示されるはずだ。ここでMicrosoft OfficeやOpenOffice.orgのデータを開いて変換してみよう。さまざまなオフィスデータをPDFに変換できることが確認できる。
JOOConverterのサイトにはデモンストレーションも用意されているため、そちらを使ってみてもいいだろう。ただし、こちらはファイルサイズに上限が設けられている。
JOOConverterはデプロイも簡単だし使い方も簡単だ。これなら、ノートPCにはAcrobat Readerのみをインストールしておき、オフィスファイルを閲覧する必要がでてきたときにはサーバで動作しているJOOConverterにアクセスして、PDFに変換して閲覧ということも可能だ。
JOOConverterでオフィスデータ変換
JOOConverterはコマンドとしても動作させることができる。まず、プロンプト1のようにOpenOffice.orgを動作させておき、プロンプト2のように実行する。第一引数が元のファイル、第二引数が変換したいファイル名だ。
プロンプト2 JOOConverterをコマンドとして動作 - OpenOffice.org WriterデータをMicrosoft Wordデータへ変更
当然この処理はJOOConverter APIを使ってJavaアプリケーションから使うことができる。OpenOffice.org SDKのような使い方もできるということだ。変換できるファイル形式はOpenOffice.orgが対応しているものとなる。つまり、かなりの種類のデータを相互変換することが可能なことになる。
むろん、デーモン/バックエンドで動作させるアプリケーションはOpenOffice.orgではなくStarSuite(日本ではNECが商標を持つグループウェアと重なることからStarSuiteと呼ばれている。米国などではStarOffice)でもよい。StarSuiteを使った場合、StarSuiteに追加されているデータ形式に関しても変換を実施することができる。
Webアプリ転用の可能性
Microsoft Word/Excelの特定箇所のデータだけ入力してPDFで出力してほしい、という要望がある。いくつか方法があるが、商用ライブラリを使えば簡単、FLOSSは使い勝手がいまいちというのが現状だ。
この手の操作は、Javaだけにこだわらなければ、OpenOffice.org SDKを使ってOpenOffice.orgの機能を使ってしまう方法がある。そこでJOOConverterだ。OpenOffice.org SDKほど高機能ではないが、紹介したようにOpenOffice.orgを使ってオフィスデータを変換できる。
OpenOffice.orgを高負荷Webアプリケーションシステムのバックエンドに使うという話は聞いたことがないが、不可能な話でもないだろう。まず可能性を探るという点において、JOOConverterは面白いプロダクトだ。
関連サイト
ヘッドライン
- Rambus、次世代携帯機器向けメモリ「モバイルXDR」を発表[21:16 2/9]エレクトロニクス
- Intel、基幹業務システム向け次世代プロセッサ「Itanium 9300」を発表[20:47 2/9]エレクトロニクス
- MicronとNanya、42nmプロセスを採用した2GビットDDR3を開発[20:07 2/9]エレクトロニクス
- ISSCC 2010 - 日立、1Gbpsあたり消費電力1mW以下のトランシーバ回路を開発[19:52 2/9]エレクトロニクス
- CSSを最適化する3つのツール[17:17 2/9]JavaScript / CSS / HTML
- TIOBEプログラミング言語人気 - Scratch/Erlang/Scala/JavaFX[17:17 2/9]プログラミング
- Microsoft、Red Hat Linuxサポートをひっそり追加[17:15 2/9]システム管理
- IBM、8コア/32MB eDRAM搭載の高速CPU「POWER7」を発表 - サーバも販売開始[17:02 2/9]サーバとストレージ
- 【レポート】UTM最新動向 - クラウドに耐えうる処理性能と管理性の強化が進む[14:42 2/9]セキュリティ
- あるコンパイラが重要なマイルストーンに到達、LLVM Clang[14:06 2/9]プログラミング






