この記事では、Windows環境のPHPでCreate!Form Cast(PDF帳票出力ランタイム)を呼び出し、帳票を出力する方法をご紹介します。(Linuxからの呼び出し方法は、体験版同梱のサンプルコードをご覧下さい。)
サンプルを動作させるために、Webサーバー、PHPを予めインストールしておきます。なお、この記事では以下の環境で動作を確認しています。
Create!Form Designの体験版をダウンロードします。以下からお申し込みください。
ダウンロード後、Create!Form DesignをWebサーバが導入された環境にインストールします。(サンプルコードがそのまま利用できるため、インストール先などは初期値をお勧めします。)
以下はCreate!Formを使ってPDF帳票を生成する手順です。

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


これらのファイルをWebサーバを通して閲覧できるフォルダに配置し、 入力用HTMLファイル(index.html)にブラウザよりアクセスしてください。 表示されるHTML画面の「帳票生成」ボタンをクリックすると、PDF帳票が出力されます。
名前を入力する画面です。
帳票の名前部分のデータをpostデータとして送信します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>PHPからの帳票出力</title> </head> <body> <h1>PHPからの帳票出力サンプル</h1> <form action="makeForm.php" method="post"> 名前:<input type="text" name="name" value="名前" size="50" maxlength="20"><br> <input type="submit" name="" value="帳票作成"> </form> </body> </html>
帳票のデータファイルを作成するサンプルコードです。 ここでは単純化するために大部分を固定情報とし、postデータとして受信した「名前」の部分のみを可変情報としてCSVファイルを作成しています。
<?php
function outputData($arg){
$outputFileName = "sample.csv";
$data = array(
array("見積番号,見積先会社名,金額,見積件名,受渡場所,納期,有効期限,支払条件,発行日"),
array("M2100125,".$arg.",205300,化粧箱デザイン,貴社ご指定場所,受注後3営業日,本見積発行日より2ヶ月,締め日:末日、支払日:翌末日、手形サイト:120日、20万円以下の場合は銀行振込(手数料お客様負担)、手形郵送の場合は送料負担願います。,2012/12/12")
);
$output = "";
foreach( $data as $key1 => $val1 ){
foreach( $val1 as $key2 => $val2 ){
$output.= $val2.",";
}
$output.= "\r\n";
}
file_put_contents($outputFileName,$output);
return $outputFileName;
}
?>
実行パラメータに、作業ディレクトリ、スタイルファイル、出力ファイル名、入力データファイル名を設定し、Create!Form Castを呼び出します。
<?php
include "outputData.php";
/*Postデータの受信*/
$name = mb_convert_encoding($_POST["name"], "SJIS", "UTF-8");
/*帳票生成用データの作成(outputDataメソッドは引数で渡したデータを含むCSVを作成します。)*/
$datafile = outputData($name);
/*帳票PDFの作成*/
/*Create!Form:実行ファイルの設定*/
$cfInstDir = "C:\\CreateV10";
/*作業ディレクトリ*/
$cfworkdir = "C:\\CreateV10\\tut\\mitsumori\\fin";
/*スタイルファイル*/
$stylefile = "mitsumori.sty";
/*入力データファイル名*/
$datafile = realpath($datafile);
/*出力ファイル名(ディレクトリに書き込み権限必要)*/
$outputdir = dirname($datafile);
$outputfile = date("YmdHis").".pdf";
/*Create!FormCast実行*/
/*実行コマンドライン(ランタイムガイド参照)*/
$execmd = "C:\\CreateV10\\CCast.exe -D".$cfworkdir." -s".$stylefile." -o".$outputdir."/".$outputfile." ".$datafile;
/*実行(ランタイムガイド参照)*/
$cfret = 0;
system($execmd, $cfret);
// PDFのクライアントへの表示
if($cfret!=1){
/*Create!Form実行エラー*/
print("** Create!Form Execution Error.
"); print("
");
print("Error:".$cfret);
print("
");
print("Command:".$execmd); print("
");
}else{
/*出力ファイルのリダイレクト*/
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-type: application/pdf");
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$outputfile);
}
?>
帳票の出力後、そのPDF帳票のURLにリダイレクトすることでWebクライアントに表示されます。
帳票定義を確認してみましょう。サンプルで呼び出している「見積書」の帳票レイアウトを確認します。