photo credit: hfreesartography via photopin cc
Webシステムで帳票を作成する場合、Excelベースのテンプレートに値をセットをPDF変換して出力、という方式をよく使います。こなれたライブラリが出ていて扱いやすいのもありますし、レイアウトの変更にもテンプレートを直すだけの手間で対応できるというメリットがあるやり方だと思います。
そんなPDF変換処理について、以前PDF変換ツールとしてJavaベースのライブラリであるJODConverter、変換エンジンにオフィススイートのOpenOfficeとLibreOfficeを、それぞれ組み合わせて試した時の記録が残っていたので、覚書として残しておきます。
※試した環境はCentOSです。
Excelテンプレート準備
Microsoft Officeのサイトから適当なExcelをテンプレート用としてダウンロードします。
ダウンロードしたファイルを少し加工して、こんな感じで保存しました。
template_calendar.xls
JODConverterインストール
PDF変換ツールJODConverterのセットアップをします。(Javaはインストールされてる前提)
下記サイトより、jodconverter-2.2.2.zipをダウンロードして解凍
ダウンロードしたzipファイルを任意のディレクトリに解凍します。
OpenOfficeインストール
OpenOfficeをインストールします。
# yum install openoffice.org*
OpenOfficeを起動します。
# /usr/bin/soffice -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" &
xls→pdf変換を実行します。
# cd /path/to/jodconverter-2.2.2 # java -jar lib/jodconverter-cli-2.2.0.jar template_calendar.xls calendar_ooo.pdf
変換したPDFはこんな感じでできました。
calendar_ooo.pdf
LibreOfficeインストール
LibreOfficeをインストールします。
# wget "http://download.documentfoundation.org/libreoffice/stable/3.5.0/rpm/x86_64/LibO_3.5.0_Linux_x86-64_install-rpm_en-US.tar.gz" # tar -xzvf LibO_3.5.0_Linux_x86-64_install-rpm_en-US.tar.gz # cd LibO_3.5.0rc3_Linux_x86-64_install-rpm_en-US/RPMS # yum install --nogpgcheck lib*
LibreOfficeを起動します。(OpenOfficeを起動していたら先に停止しておく。)
# /opt/libreoffice3.5/program/soffice --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=8100;urp" &
あとは、OpenOfficceの時と同様にxls→pdf変換します。変換したPDFはこちらです。
calendar_libre.pdf
二つのPDFを比べると、罫線や文字の強調などの出方が違う感じですね。
お好みで使い分けると良いかもしれません。ご参考までに。