テンプレート構文には、MS Excel をデザイナとして使用し、様々なフォームフィールドを持つ PDF フォームを作成する機能もあります。フォームフィールドは、帳票テンプレートを作成する際に、後述するテンプレートプロパティを使用して定義できます。帳票テンプレートから作成した帳票は、あらかじめ定義されたフォームフィールドを含む PDF として出力できます。
テンプレート構文にて PDF のフォームフィールドを定義するには、form プロパティを使用します。このプロパティの値は JSON 形式であり、JSON 文字列を使用して、フォームフィールドのすべての設定を記述できます。例えば、以下のとおりに記述できます。
サポートされている PDF のフォームフィールドは以下のとおりです。
テンプレート構文を使用して、データを連結した PDF フォームを作成することができます。以下の例では、テンプレートセルにてテキストボックスフィールドを定義し、PDF として出力しています。また、同じテンプレートセルにて、データソースのデータが連結されるように指定しています。
上記のテンプレートセルはデータフィールドを含み、そのデータはデータソースから連結され、帳票作成後に PDF フォームに表示されます。
上記帳票テンプレートから帳票を作成し、PDF に出力すると、以下のような PDF フォームになります。
テンプレート構文を使用して、データを連結しない PDF フォームを作成することもできます。以下の例では、テンプレートセルにてテキストボックスやラジオボタンなどのフィールドを定義し、PDF として出力しています。
上記のフォームフィールドはデータが連結されないフィールドであり、作成された PDF 帳票にてフォームフィールドにデータを直接入力する必要があります。
上記帳票テンプレートから帳票を作成し、PDF に出力すると、以下のような PDF フォームになります。
以下の表に示すように、フォームフィールドにさまざまな設定を適用して、その外観をカスタマイズすることができます。
名前 | 型 | 例 | 説明 | |
---|---|---|---|---|
type |
Enum string 標準フォームフィールド
|
{"type": "listbox"} |
PDFフォームフィールドの種類を示します。 (必須フィールド) |
|
alternateName | String | {"alternateName": "The alt name"} | フォームフィールドへの入力中に役立つテキストを表示します。ポインタがフォームフィールドの上にしばらく置かれると、ツールチップが表示されます。 | |
backgroundcolor | String | {"backgroundcolor": "#ffff00"} {"backgroundcolor": "rgb(255, 178, 0)"} {"backgroundcolor": "rgba(188, 100, 0, 255)"} |
フォームフィールドの背景色を示します。 | |
border | width | Yes | {"border":{"width": 120}} | フォームフィールドの罫線の色、スタイル、幅を示します。 |
color | String | {"border":{"color": "#ffff00"} {"border": {"color": "rgb(255, 178, 0)"}} {"border": {"color": "rgba(188, 100, 0, 255)"}} |
||
style |
Enum string:
|
{"border": {"style": "dashed"}} | ||
font | size | Yes | {"font": {"size": 18}} | フォームフィールドで設定できるさまざまなフォントを示します。 |
color | String | {"font": {"color": "#ffff00"}} {"font": {"color": "rgb(255, 178, 0)"}} {"font": {"color": "rgba(188, 100, 0, 255)"}} |
||
name | String | {"font": {"name": "sans-serif"}} | ||
bold | Boolean | {"font": {"bold>": true}} | ||
italic | Boolean | {"font": {"italic": true}} | ||
locked | Boolean | {"locked": true} | ユーザーがフィールドのプロパティを変更できるかどうかを示します。 | |
name | String | {"name": "The field name"} | フィールドの一意の名前を示します。 | |
readOnly | Boolean | {"readOnly": true} | ユーザーがフィールドの値を変更できるかどうかを示します。 | |
required | Boolean | {"required": true} | フィールドの値が必要かどうかを示します。 | |
printed | Boolean | {"printed":false} | ページの印刷時にフィールドを印刷するかどうかを示します。 | |
hidden | Boolean | {"hidden":true} | フィールドを表示するかどうかを示します。 | |
mouseUp | JsonObject | {"mouseUp":{"script":"fBox1 = this.getField(\"checkbox\") ;\r\nfBox1.display = display.hidden", "submit":"http://localhost:80//myscript#FDF" ,"reset":{"fieldNames": ["checkbox", "textbox"]}}} |
フィールドのアクティブ領域内でマウスボタンを放したときに実行されるアクションを示します。 | |
mouseDown | JsonObject | {"mouseDown":{"script":"fBox1 = this.getField(\"checkbox\") ;\r\nfBox1.display = display.hidden", "submit":"http://localhost:80//myscript#FDF" ,"reset":{"fieldNames": ["checkbox","textbox"]}}} |
フィールドのアクティブ領域内でマウスボタンを押したときに実行されるアクションを示します。 | |
mouseEnter | JsonObject | {"mouseEnter":{"script":"fBox1 = this.getField(\"checkbox\") ;\r\nfBox1.display = display.hidden", "submit":"http://localhost:80//myscript#FDF" ,"reset":{"fieldNames": ["checkbox","textbox"]}}} |
フィールドのアクティブ領域内にマウスポインタを合わせたときに実行されるアクションを示します。 | |
mouseExit | JsonObject | {"mouseExit":{"script":"fBox1 = this.getField(\"checkbox\") ;\r\nfBox1.display = display.hidden", "submit":"http://localhost:80//myscript#FDF" ,"reset":{"fieldNames": ["checkbox","textbox"]}}} |
フィールドのアクティブ領域外にマウスポインタを移動したときに実行されるアクションを示します。 | |
onFocus | JsonObject | {"onFocus":{"script":"fBox1 = this.getField(\"checkbox\") ;\r\nfBox1.display = display.hidden", "submit":"http://localhost:80//myscript#FDF" ,"reset":{"fieldNames": ["checkbox","textbox"]}}} |
注釈が入力フォーカスを受け取ったときに実行されるアクションを示します。 | |
onBlur | JsonObject | {"onBlur":{"script":"fBox1 = this.getField(\"checkbox\") ;\r\nfBox1.display = display.hidden", "submit":"http://localhost:80//myscript#FDF" ,"reset":{"fieldNames": ["checkbox","textbox"]}}} |
注釈が入力フォーカスを失ったときに実行されるアクションを示します。 | |
format | String | {"format":"event.value = (event.value * 100) + \" % \";"} | フィールドの書式を設定して現在の値を表示する前に実行する JavaScript アクションを示します。このアクションで、書式設定する前に、フィールドの値を変更できます。 | |
validate | String | {"validate":"if (event.value < 0 || event.value > 100) {\r\n" +"app.beep(0);\r\n" +"app.alert(\"Invalid value for field \" +event.target.name);\r\n" + "event.rc = false;\r\n" +"}"} |
フィールドの値が変更されたときに実行する JavaScript アクションを示します。このアクションで、新しい値の有効性を確認できます。 | |
calculate | String | {"calculate":"var oil = this.getField(\"Oil\");\r\n"+ "var filter = this.getField(\"Filter\") ;\r\n"+"event.value (oil.value + filter.value) * 1.0825;"} |
他のフィールドの値が変更されたときに、このフィールドの値を再計算するために実行する JavaScript アクションを示します。 |
|
keystroke | String | {"keystroke":"if (!event.willCommit) {\r\n"+"var f =this.getField (\"myPictures\");\r\n"+"var i =this.getIcon(event.change) ;\r\n"+"f.buttonSetIcon(i);\r\n"+"};"} |
ユーザーがテキストフィールドまたはコンボボックスでキー操作した場合、 またはスクロール可能なリストボックスで選択内容を変更した場合に実行する JavaScript アクションを示します。 このアクションで、キー操作の有効性を確認し、それを拒否したり変更することができます。 |
|
autofocus | Boolean | {"type": "password" , "autofocus": true} | ページの読み込み時にフィールドに自動的にフォーカスをあてるかどうかを示します。 |
|
disabled | Boolean | {"type": "password" , "disabled": true} | フィールドが無効になっているかどうかを示します。 | |
autocomplete | Enum String | {"type": "date" , "autocomplete": "bday"} |
ウェブ開発者は入力欄にどの種類の情報が期待されているかをブラウザーに示唆するのと同様に、ユーザーエージェントがフォーム入力欄の値を埋めるための自動支援を提供する必要があることを指定します。 このプロパティの動作は、ブラウザの実装によって異なります。 |
|
|
|
Name | 型 | 例 | 説明 | |
---|---|---|---|---|
script |
String |
{"script":"fBox1 = this.getField(\"checkbox\");\r\nfBox1.display = display.hidden"} | JavaScript インタプリタによってスクリプトをコンパイルして実行するアクションを示します。 | |
submit | String | {"submit":"http://localhost:80//myscript#FDF"} | 選択された対話式フォームフィールドの名前と値を、指定された URL に送信するアクションを示します。 通常、この URL は、送信されたデータを処理して応答を返す Web サーバーのアドレスです。 | |
reset | fieldNames | Yes | {"fieldNames": ["checkbox", "textbox"]} | このアクションで処理する(または処理から除外する)フィールド名のリストを示します。 空にした場合は、すべてのフィールドが処理されます。 |
exclude | Boolean | {"exclude":true} | FieldNames で指定されたフィールドを処理から除外するかどうかを示す値を示します。 デフォルトでは、このプロパティは false に設定されており、指定されたフィールドが処理に含まれます。 |
名前 | 型 | 例 | 説明 |
---|---|---|---|
checkStyle |
Enum string:
|
{"checkStyle": "circle"} | チェックマークのスタイルを示します。 |
value | Boolean | {"value": true} |
チェックボックスの値を示します。 (値が欠落している場合、DioDocs for Excelは自動的にセルの値をブール値に変換し、テンプレートの処理後にプロパティに設定します。) |
defaultValue | Boolean | {"defaultValue": false} | チェックボックスのデフォルト値を示します。 |
名前 | 型 | 例 | 説明 |
---|---|---|---|
value |
String |
{"value": "Hunter"} | テキストボックスの値を示します。 |
defaultValue | String | {"defaultValue": "Input your name!"} | テキストボックスのデフォルト値を示します。 |
combo | Boolean | {"combo":true} | ポインティングデバイスで選択されたときに、新しい値をすぐにコミットするかどうかを示す値を示します。 |
password | Boolean | {"password":true} | パスワードを画面に表示しないで安全に入力する目的でこのフィールドを使用するかどうかを示します。 |
spellcheck | Boolean | {"spellcheck":false} | フィールドに入力されたテキストをスペルチェックするかどうかを示します。 |
scrollable | Boolean | {"scrollable":false} | 注釈の四角形内に収まらないテキストに対応するために、フィールドをスクロール可能にするかどうかを示します。 |
maxlength | Integer | {"maxlength":10} | フィールドのテキストの最大長(文字数)を示します。 |
multiline | Boolean | {"multiline":true} | フィールドに複数行のテキストを含めることができるかどうかを示します。 |
justification |
Enum string:
|
{"justification": "center"} |
フィールドのテキストの表示に使用される位置揃えを示します。 |
名前 | 型 | 例 | 説明 |
---|---|---|---|
value | String Array | {"value": ["US", "UK"]} | リストボックスの値を示します。 |
defaultValue | String Array | {"defaultValue": ["US", "UK"]} | リストボックスのデフォルト値を示します。 |
commitOnSelChange | Boolean | {"commitOnSelChange": true} | ポインティングデバイスで選択されたときに、新しい値をすぐにコミットするかどうかを示す値を示します。 |
selectedIndex |
Integer |
{"selectedIndex": 0} | 選択項目のインデックスを示します。 |
sort | Boolean | {"sort": true} | フィールドのオプション項目をアルファベット順にソートするかどうかを示します。 |
spellCheck | Boolean | {"spellCheck": true} | フィールドに入力されたテキストをスペルチェックするかどうかを示します。 |
selectedIndexes | Integer Array | {"selectedIndexes": [0, 2, 5]} | 選択項目のインデックスを示します。 |
multiSelect | Boolean | {"multiSelect": true} | このフィールドの複数のオプション項目を同時に選択できるかどうかを示します。 |
exportValue | String | {"exportValue": "TheResult"} | リストボックスフィールドのエクスポート値を示します。 |
名前 | 型 | 例 | 説明 |
---|---|---|---|
value | String Array | {"value": ["US", "UK"]} | コンボボックスの値を示します。 |
defaultValue | String Array | {"defaultValue": ["US", "UK"]} | コンボボックスのデフォルト値を示します。 |
commitOnSelChange | Boolean | {"commitOnSelChange": true} | ポインティングデバイスで選択されたときに、新しい値をすぐにコミットするかどうかを示す値を示します。 |
selectedIndex |
Integer |
{"selectedIndex": 0} | 選択項目のインデックスを示します。 |
sort | Boolean | {"sort": true} | フィールドのオプション項目をアルファベット順にソートするかどうかを示します。 |
spellCheck | Boolean | {"spellCheck": true} | フィールドに入力されたテキストをスペルチェックするかどうかを示します。 |
editable | Boolean | {"editable": true} | コンボボックスに編集可能なテキストボックスとドロップダウンリストが含まれるかどうかを示します。 |
名前 | 型 | 例 | 説明 |
---|---|---|---|
checkStyle |
Enum string:
|
{"checkStyle": "circle"} | チェックマークのスタイルを示します。 |
groupName |
String |
{"groupName": "Teams"} |
ラジオボタンのグループ名を示します。 同じグループ名のラジオボタンが同じグループに追加されます。 (値が欠落している場合、DioDocs for Excelはテンプレートの処理後に、同じテンプレートセルから展開されたラジオボタンを自動的に同じグループに追加します) |
radiosInUnison | Boolean | {"radiosInUnison": true} |
オン状態として同じ値を使用する、ラジオボタンフィールド内のラジオボタンのグループが揃ってオン/オフになります。 1つのラジオボタンをオンにすると、すべてのラジオボタンがオンになります。 設定されない場合は、それぞれのボタンが独立して動作します(HTML のラジオボタンと同じ動作)。 |
checkedChoice | String | {"checkedChoice": "Team5"} | チェックされたオプションの値を示します。 |
defaultCheckedChoice | String | {"defaultCheckedChoice": "Team1"} | ユーザーが最初にフォームを開いたときのチェックされたオプションの値を示します。 |
名前 | 型 | 例 | 説明 | |
---|---|---|---|---|
highlighting |
Enum string:
|
{"highlighting": "outline"} | 注釈の強調表示モードを示します。 | |
caption |
String |
{"caption": "Push"} | ボタンのキャプションを示します。 | |
image | Base64 String | {"image": "The base64 image data."} | ボタンの画像を示します。 | |
captionImageRelation |
Enum string:
|
{"captionImageRelation": "captionBelowIcon"} | 画像を基準とした、ボタンのキャプションの配置方法を示します。 | |
downCaption | String | {"downCaption": "Push Down"} | ユーザーがボタンを押したときのボタンのキャプションを示します。 | |
downImage | Base64 String | {"downImage": "The base64 image data."} | ユーザーがボタンを押したときのボタンの画像を示します。 | |
rolloverCaption | String | {"rolloverCaption": "Rollover"} | ユーザーがマウスボタンを押さずにアクティブ領域内にマウスポインタを移動したときにボタンのキャプションを示します。 | |
rolloverImage | Base64 String | {"rolloverImage": "The base64 image data."} | ユーザーがマウスボタンを押さずにアクティブ領域内にマウスポインタを移動したときにボタンの画像を示します。 | |
imageScale | mode | Yes | {"imageScale": {"mode": "bigger"}} | スケーリングモードを示します。 |
proportional | Boolean |
{"imageScale": {"proportional": true}} |
画像を縦横同率に拡大/縮小するかどうかを示します。 | |
x | Float |
{"imageScale": {"proportional": true, "x": 0.6}} |
画像の位置を示します。
|
|
y | Float | {"imageScale": {"proportional": true, "y": 0.8}} | ||
ignoreBorder | Boolean | {"imageScale": {"ignoreBorder": true}} |
ボタンの外観を拡大/縮小して、注釈の境界内にボタン全体を収めるかどうかを示します。境界線の幅は考慮されません。 |
名前 | 型 | 例 | 説明 |
---|---|---|---|
lockType |
Enum string:
|
{"lockType": "specifiedOnly"} | ロックされたフィールドのタイプを示します。 |
fieldNames | String Array | {"fieldNames": ["signerName", "time"]} | lockType プロパティに応じて、処理に含める/処理から除外するフィールドの名前のリストを示します。 |
LockedFields | Boolean | {"LockedFields": true} | 署名フィールドが署名されたときにフォームフィールドをロックするかどうかを示します。 |
上記の標準的な PDF のフォームフィールドとは別に、テンプレート構文は PDF フォームを生成するためのカスタム入力タイプもサポートしています。詳細については、「カスタム入力タイプ」を参照してください。