【ハウツー】

ワードもエクセルもPDFに変換、サーバサイドJavaで - JOOConverter

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 をサーバとして実行

% daemon openoffice.org -headless -accept="socket,port=8100;urp;"

次にJOOConverter Webアプリケーションをデプロイする。Apache Tomcat 5.5を使っているなら、「${CATALINA_HOME}/webapps/」に「jooconverter-2.0.0.war」ファイルをコピーするだけでいい。

図1 JOOConverter Webアプリケーション - 上のフォームにファイルを入力して変換を実施

デプロイしたら「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データへ変更

% java -jar jooconverter-2.0.0.jar document.sxw document.doc

当然この処理は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は面白いプロダクトだ。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

求人情報