この記事では、JavaServletでCreate!Form Cast(PDF帳票出力ランタイム)を呼び出し、帳票を出力する方法をご紹介します。
サンプルを動作させるために、JDK、Tomcatを予めインストールしておきます。なお、この記事では以下の環境で動作を確認しています。
※過去のバージョンのTomcat、Javaでも呼び出しは可能です。 その際は、各操作をバージョンにあわせた操作に読み替えてご利用ください。
Create!Form Designの体験版をダウンロードします。以下からお申し込みください。
ダウンロード後、Create!Form DesignをWebサーバが導入された環境にインストールします。(サンプルコードがそのまま利用できるため、インストール先などは初期値をお勧めします。)
以下はCreate!Formを使ってPDF帳票を生成する手順です。

※ Create!Form体験版では、Create!Form Designの中にあるテスト実行用のCreate!Form Castを使用してPDF帳票を出力します。そのためこのサンプル実行においては、帳票開発環境とアプリケーションサーバーが同一環境内にあるイメージになります。
HTMLの帳票作成ボタンをクリックするとPDF帳票を表示する簡単なサンプルコードです。
このサンプルは以下のファイルで構成されます。


Webアプリケーション用のフォルダーを作成します。
エクスプローラーから、「C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps」(TomcatのWebアプリケーション用フォルダー)に 「HelloCreate」を作成します。 「HelloCreate」内に「WEB-INF」フォルダーを作成し、さらにその中に、「classes」を作成します。

Tomcat設定用のファイルを作成します。
このサンプルでは、HelloCreateという名前で作成したアプリケーションにアクセスできるように作成します。
「C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost」に「HelloCreate.xml」を作成します。
<Context path="/HelloCreate" docBase="C:\Program Files\Apache Software Foundation\Tomcat 7.0 \webapps\HelloCreate"/>
「C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\HelloCreate\WEB-INF」に「web.xml」を作成します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
<servlet>
    <servlet-name>HelloCreate</servlet-name>
    <servlet-class>HelloCreate</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloCreate</servlet-name>
    <url-pattern>/HelloCreate</url-pattern>
</servlet-mapping>
</web-app>
帳票ツール呼び出し用のjarファイルを Tomcat上の共通ライブラリ配置場所に配置します。
インストールした帳票ツールより「C:\Program Files\Infotec\CreateForm\11\lib\CreateFormLib.jar」ファイルを 「C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib」にコピーします。
「C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\HelloCreate」に「index.html」を作成します。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"> </head> <body> <form method="get" action="HelloCreate"> <input type="submit" value="送信"> </form> </body> </html>
「C:\Tmp」(コンパイル作業用のフォルダ)に「HelloCreate.java」を作成します。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import net.createform.cji.*;
import net.createform.common.*;
public class HelloCreate extends HttpServlet {
  public void doGet(HttpServletRequest req,
                      HttpServletResponse res) 
                      throws ServletException, IOException {
        String workdir = "C:\\ProgramData\\Infotec\\CreateForm\\11\\work\\tut\\mitsumori\\fin";
        String style = "mitsumori.sty";
        String outfile = "C:\\Program Files\\Apache Software Foundation \\Tomcat 7.0\\webapps\\HelloCreate\\mitsumori.pdf";
        String infile = workdir + "\\mitsumori_1page.csv";
        // ①ランタイム実行パラメータのセット
        RuntimeParam param = new RuntimeParam();
        param.setWorkDir(workdir);
        param.setStyleFile(style);
        param.setDataFile(infile);
        param.setOutFile(outfile);
        
        // ②CCastクラスのインスタンスを作成
        CCast cast = new CCast();
        // ③FormCastランタイム実行
        int ret = cast.executeRuntime(param);
        // ④戻り値の判定
        if(ret < 0){
            // エラー処理を記述
        }
        res.sendRedirect("mitsumori.pdf");
  }
}
コマンドプロンプトで、コンパイル作業用のフォルダに移動し、コンパイルを実行します。
(servlet用のjarファイルと、帳票作成用のjarファイルにクラスパスを通します。)
cd C:\Tmp javac -classpath "C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\servlet-api.jar";"C:\Program Files\Infotec\CreateForm\11\lib\CreateFormLib.jar" HelloCreate.java
「HelloCreate.class」が作成されます。
先ほど作成したウェブアプリケーション用のフォルダ「C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\HelloCreate\WEB-INF\classes」にコンパイルで作成した「HelloCreate.class」をコピーします。
Tomcatを再起動します。


※帳票のデータを変更したいときは、 CSVファイルを編集します。 通常のシステム処理では、プログラムよりCSVファイルを作成します。
帳票定義を確認してみましょう。サンプルで呼び出している「見積書」の帳票レイアウトを確認します。