この記事では、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ファイルを作成します。
帳票定義を確認してみましょう。サンプルで呼び出している「見積書」の帳票レイアウトを確認します。