JRubyでbizStream

今回はJRubyを利用したbizStreamでのファイル出力を試してみました。

JRubyはJavaによるRubyインタプリタの実装で、Javaの資産と共存する事が可能です。
比較をする為に、簡単なJavaのコードを作成します。

まずはJava側、引数のレイアウトファイルからPDFを作成します。

《 XmlToPdfSample.java 》
import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
import com.brainsellers.xml.page.ExcelEngine;

public class XmlToPdfSample {
    public static void main(String[] args) {
        if(args.length < 2){
            System.out.println("XmlToPdfSample [入力XMLファイルパス] [出力ファイルパス]");
            return;
        }
        // Excelファイル作成処理
        try{
            XMLSuper xml = new JaxpXML( args[0], args[1] );
            xml.parse();
            xml.setPageSize();
            xml.calcDataSize();                 // 座標計算を行う
            xml.toPDF();                        // PDFを生成する
            xml.close();                        // PDFの出力を行う
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

このまま(Java)でも十分にシンプルなコードです。

これをJRubyに置き換えると、以下になります。

《 XmlToPdfSample.java.rb 》
require "java"

import com.brainsellers.xml.JaxpXML
import com.brainsellers.xml.common.XMLSuper
import com.brainsellers.xml.page.ExcelEngine

if(ARGV.length < 2)
  puts "XmlToPdfSample [入力XMLファイルパス] [出力ファイルパス]"
  exit false
end

begin
  xml = JaxpXML.new( ARGV[0], ARGV[1] )
  xml.parse
  xml.setPageSize
  xml.calcDataSize
  xml.toPDF
  xml.close
rescue => e
  puts e.backtrace
  exit false
end

JRubyでbizStreamを利用する場合、環境変数CLASSPATHを利用する事がお勧めです
JavaでbizStreamが利用出来る環境ではJRubyからのbizStreamを呼び出せるのです。

何でJRubyにする必要があるのか?と疑問を持つ方も居ると思います。
理由としては前回紹介したSinatraを利用した開発で、bizStreamのPDF出力を利用する事が目的なのです。

Sinatraとの連携については、次回以降で記述していきたいと思います。

biz-Stream詳細情報  biz-Stream資料請求

超高速!!高機能!! Web帳票ソリューション biz-Stream

オンデマンドかつリアルタイムにビジネスドキュメントを生成する帳票ソリューション