POIでさわって動的に作ったExcelをJODConverterでLibreOffice経由してPDFに出力できるとそれっぽいなっと。
やり方や考え方はここで示してくれている通りです。
http://d.hatena.ne.jp/s-ishigami/20110520/p1
ただ、いくつかハマったのでメモしときます。
Webでやる前に下記のようにコマンドラインで確認すればまあ問題ないと思いますので、コマンドラインまでのメモになります。
■環境とか
ubuntu-12.04-server-amd64.iso
java version "1.6.0_24" (OpenJDK)
JODConverter2.2.2
LibreOffice 3.5
■手順
1.フォントをインストール
sudo apt-get install otf-ipafont
これやらないと日本語が豆腐になります。もちろんなりました。
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0153
2.LibreOfficeをインストール
http://d.hatena.ne.jp/pochio_pochiyama/20110126/p1
add-apt-repository がなかったので。$ sudo apt-get purge "openoffice*.*" $ sudo add-apt-repository ppa:libreoffice/ppa $ sudo apt-get update $ sudo apt-get install libreoffice libreoffice-gnome libreoffice-l10n-ja
http://vmem.jp/2010/11/10/add-apt-repository%E3%81%8C%E3%81%AA%E3%81%84/
$ sudo aptitude install python-software-properties
3.LibreOfficeをサービスで起動
http://www32.atwiki.jp/parepan/pages/144.html
私の環境ではオプションの指定で怒られたので、こんなコマンドでした。結論・・・・ OpenOfficeは「2.4.1日本語版のRPM, JRE付き」を使用した。 OOo_2.4.1_LinuxIntel_install_wJRE_ja.tar.gz 解凍してX-windowからsetupを実行してインストールした。 OpenOfficeをサービスで起動する場合は # soffice -headless -accept="socket,port=8100;urp;" -nofirststartwizard ※「-nofirststartwizard」で起動しないとダメです。 jodconverter-2.1.1を使う。 java -jar jodconverter-2.1.1/lib/jodconverter-2.1.1.jar test.ppt test.pdf
soffice --headless --accept="socket,port=8100;urp;" --nofirststartwizard
実はフォントをこのあとにインストールしてサービス起動し直さず、文字化けの豆腐が直らない直らないとわめいておりましたw
この手順通りにすれば豆腐にはならないです。
4.JODConverterをインストール(というかzip解凍)
http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/
DLするのはこれ。
jodconverter-2.2.2.zip
tomcatやjettyで使うならこれ。
jodconverter-webapp-2.2.2.zip
5.JODConverterを実行して変換
http://chipmunkland.blog104.fc2.com/blog-entry-198.html
java -jar jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar input.xls output.pdf
ここまでできればきっとWebアプリでの連携もできると思います。
フロントエンドのWebアプリでリクエストを受けて、その内部でlocalhost:8080 的なサーバにリクエストレスポンスでバイナリを受け渡すか、Webアプリ内でシェルを実行するかの違いかな。
初めてやったんですが、なかなかおもしろかった。
0 件のコメント:
コメントを投稿