* 書類テンプレートシステムとは [#e987277c]

あらかじめHTMLで作成された書類のテンプレートから、白紙の書類または記入済みの書類をPDFとして出力するシステムです。

次の機能があります。

- 未記入の書類のPDF生成
- ウェブフォームの表示
- ウェブフォームの入力チェック
- ウェブフォームの入力から記入済みの書類のPDFを生成
- 書類の記入項目の仕様書をPDFとして出力

このシステムはPHPウェブアプリケーションとして作成されているため、PHPを実行可能なウェブサーバーが必要です。

* 配置方法 [#s8d22aa8]

配布物のwwwの中をウェブサーバーで公開するように設定してください。

さらに、wwwの中に次のディレクトリを作成してください。

work/cache!~
work/templates_c~

両方のディレクトリには、PHPスクリプトによる書き込みが出来るようにパーミッションを設定してください。

* テンプレートの追加方法 [#i4a6c2c4]

data/templatesディレクトリ内に、適当なテンプレート名のディレクトリを作り、次のファイルを配置してください。

|~ファイル名|~説明|h
|テンプレート名/form.tpl.html|書類のテンプレート|
|テンプレート名/constraints.tpl.html|入力の制約|
|テンプレート名/rsrcs/style.css|書類のスタイルシート|

** form.tpl.htmlの記述方法 [#xb5379be]
このファイルは書類本体のテンプレートで、Smarty形式で記述します。
書類テンプレートシステムでは、フォームの生成のための関数を使用することが出来ます。

*** {text}関数 [#paedd5bd]
１行のテキストです。

|~属性|~必須|~型|~説明|h
|name|Yes|string|ウェブフォームパラメータ名|
|size|No|string|文字数|
|default|No|string|ウェブフォームのデフォルトの入力値|

印刷用では指定した文字数分の空白になります。
ウェブフォームではテキストフィールドになります。

*** {longtext}関数 [#z81276e3]
複数行のテキストです。

|~属性|~必須|~型|~説明|h
|name|Yes|string|ウェブフォームパラメータ名|
|rows|Yes|string|行数|
|cols|No|string|列数|
|default|No|string|ウェブフォームのデフォルトの入力値|

印刷用では指定した行、列数分の空白になります。
ウェブフォームではテキストエリアになります。

*** {check}関数 [#cae78a04]
複数選択チェックです。

|~属性|~必須|~型|~説明|h
|name|Yes|string|ウェブフォームパラメータ名|
|value|Yes|string|ウェブフォームで送信される値|
|label|No|string|ラベル|
|checked|No|boolean|TRUEであれば、ウェブフォームでデフォルトでチェック済み|
|style|No|string|checkであればチェック欄、circleであれば丸をつける|

印刷用ではチェック欄または丸をつける項目になります。
ウェブフォームではチェックボックスになります。

*** {radio}関数 [#dc09332e]
単一選択チェックです。

|~属性|~必須|~型|~説明|h
|name|Yes|string|ウェブフォームパラメータ名|
|value|Yes|string|ウェブフォームで送信される値|
|label|No|string|ラベル|
|checked|No|boolean|TRUEであれば、ウェブフォームでデフォルトでチェック済み|
|style|No|string|checkであればチェック欄、circleであれば丸をつける|

印刷用ではチェック欄または丸をつける項目になります。
ウェブフォームではラジオボタンになります。

*** {submit}関数 [#v9bd8c94]
送信ボタンです。印刷用では表示されません。

*** 印刷用とウェブフォームで表示を切り替える項目 [#t8390291]
印刷用で非表示にする部分は、<span class="noprint"></span>で囲ってください。

ウェブフォームで非表示にする部分は、<span class="noscreen"></span>で囲ってください。

*** 画像等の配置 [#nfc7f2cc]
rsrcsディレクトリには他に画像等も置くことができます。
ただし、画像等のファイルパスは"{$rsrcs}/ファイル名"のように、$rsrc変数を使って記述してください。

** constraints.tpl.htmlの記述方法 [#xb5379be]
パラメータについてのコメントと制約を記述するファイルです。

以下で説明するcomment関数、required関数の順に記述してください。

*** {comment}関数 [#u7654e13]
パラメータの説明を追加します。

|~属性|~必須|~型|~説明|h
|name|Yes|string|ウェブフォームパラメータ名|
|description|Yes|string|説明|

*** {required}関数 [#u6ce3a32]
パラメータに必須制約をつけます。

|~属性|~必須|~型|~説明|h
|name|Yes|string|ウェブフォームパラメータ名|
