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ファイル(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:\\ProgramData\\Infotec\\CreateForm\\11";
/*作業ディレクトリ(帳票定義が置いてあるディレクトリ)*/
$cfworkdir = "C:\\ProgramData\\Infotec\\CreateForm\\11\\work\\tut\\mitsumori\\fin";
/*スタイルファイル(帳票定義の出力定義ファイル)*/
$stylefile = "mitsumori.sty";
/*入力データファイル名*/
$datafile = realpath($datafile);
/*出力ファイル名(ディレクトリに書き込み権限必要)*/
$outputdir = dirname($datafile);
$outputfile = date("YmdHis").".pdf";
/*Create!Form Cast実行*/
/*実行コマンドライン(オンラインマニュアル「出力ランタイムの呼び出し」参照)*/
$execmd = "C:\\Program Files\\Infotec\\CreateForm\\11\\CCast.exe -D".$cfworkdir." -s".$stylefile." -o".$outputdir."/".$outputfile." ".$datafile;
/*実行(オンラインマニュアル「出力ランタイムの呼び出し」参照)*/
$cfret = 0;
system($execmd, $cfret);
// PDFのクライアントへの表示
if($cfret!=1){
    /*Create!Form実行エラー*/
    print("<H1>** Create!Form Execution Error.</H1>"); 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. 線やテキストなどを動かし、保存すると、レイアウトが変更される。

デモのご依頼、製品・機能について、お気軽にお問い合わせください Create!Formの利用イメージをご体験ください

  • QMS
  • ISMS
Copyright © Infotec,Inc.
Copyright © Infotec,Inc.

ページTOPへ