2009年6月24日水曜日

Java byte[] を send_data に渡す方法

JasperReport で pdf データ(byte[] data)を生成したまでは良かったけど、そのまま send_data へ渡すとエラーになる。

Ruby から Java に byte データを変換する方法はいろいろ見つかるんだけど、Java から Ruby に変換する方法がなかなか見つからない。あまりメジャーじゃないのかな?

いろいろ探した結果、String.from_java_bytes で byte[] (Java) を String (Ruby) に変換することで解決した。こんな感じ。



os = java.io.ByteArrayOutputStream.new
...
string = String.from_java_bytes(os.toByteArray)
send_data string, :type => "image/jpeg",
:disposition => "inline",
:filename => "newkids.jpg"



参考:
Jennifer's Weblog
Server-side image processing with JRuby-on-Rails and the Java 2D API

0 件のコメント:

コメントを投稿