お問い合わせ
  1. 帳票ツールのCreate!Form
  2. 製品情報
  3. 機能一覧
  4. PHP(Windows)からの帳票出力

PHP(Windows)からの帳票出力

この記事では、Windows環境のPHPでCreate!Form Cast(PDF帳票出力ランタイム)を呼び出し、帳票を出力する方法をご紹介します。(Linuxからの呼び出し方法は、体験版同梱のサンプルコードをご覧下さい。)

サンプルの動作環境

サンプルを動作させるために、Webサーバー、PHPを予めインストールしておきます。
なお、この記事では以下の環境で動作を確認しています。

  • OS:Windows2003
  • Webサーバー:Apache
  • PHP:PHP5.3

Create!Form体験版ダウンロード

Create!Form Designの体験版をダウンロードします。以下からお申し込みください。

無料体験版ダウンロード

ダウンロード後、Create!Form DesignをWebサーバが導入された環境にインストールします。
(サンプルコードがそのまま利用できるため、インストール先などは初期値をお勧めします。)

PHP + Create!FormでのPDF帳票生成・表示方法

以下はCreate!Formを使ってPDF帳票を生成する手順です。

  1. 帳票開発環境で、帳票定義(デザインやデータとの関連付け)を作成する。
  2. PHPアプリケーションより、帳票作成用データファイルを作成する。
  3. PHPアプリケーションから、1の帳票定義や2の帳票作成用データファイルをもとに、Create!Form Cast(PDF帳票出力ランタイム)を呼びだし、PDF帳票を生成する。
  4. PDF帳票をWebクライアントに表示する。

※ Create!Form体験版では、Create!Form Designの中にあるテスト実行用のCreate!Form Castを使用してPDF帳票を出力します。そのためこのサンプル実行においては、帳票開発環境とアプリケーションサーバーが同一環境内にあるイメージになります。

サンプルコード

HTMLの入力フォームに入力された「名前」をPDFの帳票に反映させる簡単なサンプルコードです。
このサンプルは以下の3つのファイルで構成されます。

  • 入力用HTMLファイル(index.html)
  • 帳票データ生成用PHPファイル(outputData.php)
  • 帳票生成用PHPファイル(makeForm.php)
  • 入力画面
  • 出力画面

これらのファイルをWebサーバを通して閲覧できるフォルダに配置し、 入力用HTMLファイル(index.html)にブラウザよりアクセスしてください。 表示されるHTML画面の「帳票生成」ボタンをクリックすると、PDF帳票が出力されます。

入力用HTMLファイル(index.html)

名前を入力する画面です。
帳票の名前部分のデータを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>

帳票データ生成用PHPファイル(outputData.php)

帳票のデータファイルを作成するサンプルコードです。 ここでは単純化するために大部分を固定情報とし、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;
}
?>

帳票作成用PHPファイル(makeForm.php)

実行パラメータに、作業ディレクトリ、スタイルファイル、出力ファイル名、入力データファイル名を設定し、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クライアントに表示されます。

帳票レイアウトの変更

帳票定義を確認してみましょう。
サンプルで呼び出している「見積書」の帳票レイアウトを確認します。

  1. Windowsスタートメニューから[Create!FormV11]- [マネージャ]を選択する。
  2. 左の[ディレクトリツリー]から、[C:\ProgramData\Infotec\CreateForm\11\work\tut\mitsumori\fin]を選択する。
  3. 右にプレビューされる、「見積書」をダブルクリックする。
  4. 線やテキストなどを動かし、保存すると、レイアウトが変更される。

機能一覧へもどる