DioDocs for Excel
DioDocs for Excel
PDFフォームの作成
帳票の作成 > 帳票テンプレートの構成 > PDFフォームの作成

テンプレート構文には、MS Excel をデザイナとして使用し、様々なフォームフィールドを持つ PDF フォームを作成する機能もあります。フォームフィールドは、帳票テンプレートを作成する際に、後述するテンプレートプロパティを使用して定義できます。帳票テンプレートから作成した帳票は、あらかじめ定義されたフォームフィールドを含む PDF として出力できます。

テンプレート構文にて PDF のフォームフィールドを定義するには、form プロパティを使用します。このプロパティの値は JSON 形式であり、JSON 文字列を使用して、フォームフィールドのすべての設定を記述できます。例えば、以下のとおりに記述できます。

メモ:プロパティ名と列挙値は大文字と小文字を区別しません。

サポートされている PDF のフォームフィールドは以下のとおりです。

メモ:フォームフィールドは PDF のみで表示され、Excel では表示されません。

データ連結した PDF フォーム

テンプレート構文を使用して、データを連結した PDF フォームを作成することができます。以下の例では、テンプレートセルにてテキストボックスフィールドを定義し、PDF として出力しています。また、同じテンプレートセルにて、データソースのデータが連結されるように指定しています。

上記のテンプレートセルはデータフィールドを含み、そのデータはデータソースから連結され、帳票作成後に PDF フォームに表示されます。

 

上記帳票テンプレートから帳票を作成し、PDF に出力すると、以下のような PDF フォームになります。

データ連結しない PDF フォーム

テンプレート構文を使用して、データを連結しない PDF フォームを作成することもできます。以下の例では、テンプレートセルにてテキストボックスやラジオボタンなどのフィールドを定義し、PDF として出力しています。

上記のフォームフィールドはデータが連結されないフィールドであり、作成された PDF 帳票にてフォームフィールドにデータを直接入力する必要があります。

上記帳票テンプレートから帳票を作成し、PDF に出力すると、以下のような PDF フォームになります。

 

以下の表に示すように、フォームフィールドにさまざまな設定を適用して、その外観をカスタマイズすることができます。

  1. 共通設定

    名前 説明
    type

    Enum string                        

    標準フォームフィールド

    • checkbox
    • textbox
    • listbox
    • combobox
    • radiobutton
    • pushbutton
    • signature

    カスタム入力タイプ

    • text
    • date
    • time
    • tel
    • email
    • url
    • password
    • month
    • week
    • number
    • search

    {"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:
    • none
    • solid
    • dashed
    • beveled
    • inset
    • underline
    • unknown
    {"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"}

    ウェブ開発者は入力欄にどの種類の情報が期待されているかをブラウザーに示唆するのと同様に、ユーザーエージェントがフォーム入力欄の値を埋めるための自動支援を提供する必要があることを指定します。

    このプロパティの動作は、ブラウザの実装によって異なります。

    • on
    • off
    • name
    • honorific-prefix
    • given-name
    • additional-name
    • family-name
    • honorific-suffix
    • nickname
    • email
    • username
    • new-password
    • current-password
    • one-time-code
    • organization-title
    • organization
    • street-address
    • address-line1
    • address-line2
    • address-line3
    • address-level4
    • country
    • country-name
    • postal-code
    • cc-name
    • cc-given-name
    • cc-additional-name
    • cc-family-name
    • cc-number
    • cc-exp
    • cc-exp-month
    • cc-exp-year
    • cc-csc
    • cc-type
    • transaction-currency
    • transaction-amount
    • bday-day
    • language
    • bday
    • bday-day
    • bday-month
    • bday-year
    • sex
    • tel
    • tel-country-code
    • tel-national
    • tel-area-code
    • tel-local
    • tel-local-prefix
    • tel-local-suffix
    • tel-extension
    • impp
    • url
    • photo

  2. JsonObjectの設定

    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 に設定されており、指定されたフィールドが処理に含まれます。
         
    メモ:JavaScript のスニペットコードはエスケープする必要があります。

  3. チェックボックスフィールドの設定

    名前 説明
    checkStyle

    Enum string:

    • check
    • circle
    • cross
    • diamond
    • square
    • Star
    {"checkStyle": "circle"} チェックマークのスタイルを示します。
    value Boolean {"value": true}

    チェックボックスの値を示します。

    (値が欠落している場合、DioDocs for Excelは自動的にセルの値をブール値に変換し、テンプレートの処理後にプロパティに設定します。)

    defaultValue Boolean {"defaultValue": false} チェックボックスのデフォルト値を示します。

  4. テキストボックスフィールドの設定

    名前 説明
    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:

    • left
    • center
    • right
    {"justification": "center"}

    フィールドのテキストの表示に使用される位置揃えを示します。


    メモ:テンプレート構文では、日付、メールアドレス、パスワード、月などのカスタム入力タイプをサポートします。これらのフォームフィールドは、テキストボックスフォームフィールドから継承されます。詳細については、「カスタム入力タイプ」を参照してください。
  5. リストボックスフィールドの設定

    名前 説明
    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"} リストボックスフィールドのエクスポート値を示します。

  6. コンボボックスフィールドの設定

    名前 説明
    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} コンボボックスに編集可能なテキストボックスとドロップダウンリストが含まれるかどうかを示します。


  7. ラジオボタンフィールドの設定

    名前 説明
    checkStyle

    Enum string:

    • check
    • circle
    • cross
    • diamond
    • square
    • Star
    {"checkStyle": "circle"} チェックマークのスタイルを示します。
    groupName

    String

    {"groupName": "Teams"}

    ラジオボタンのグループ名を示します。

    同じグループ名のラジオボタンが同じグループに追加されます。

    (値が欠落している場合、DioDocs for Excelはテンプレートの処理後に、同じテンプレートセルから展開されたラジオボタンを自動的に同じグループに追加します)

    radiosInUnison Boolean {"radiosInUnison": true}

    オン状態として同じ値を使用する、ラジオボタンフィールド内のラジオボタンのグループが揃ってオン/オフになります。

    1つのラジオボタンをオンにすると、すべてのラジオボタンがオンになります。 設定されない場合は、それぞれのボタンが独立して動作します(HTML のラジオボタンと同じ動作)。

    checkedChoice String {"checkedChoice": "Team5"} チェックされたオプションの値を示します。
    defaultCheckedChoice String {"defaultCheckedChoice": "Team1"} ユーザーが最初にフォームを開いたときのチェックされたオプションの値を示します。

  8. プッシュボタンフィールドの設定

    名前 説明
    highlighting

    Enum string:

    • none
    • invert
    • outline
    • push
    {"highlighting": "outline"} 注釈の強調表示モードを示します。
    caption

    String

    {"caption": "Push"} ボタンのキャプションを示します。
    image Base64 String {"image": "The base64 image data."} ボタンの画像を示します。
    captionImageRelation

    Enum string:

    • captionOnly
    • imageOnly
    • captionBelowIcon
    • captionAboveIcon
    • captionAtRight
    • captionAtLeft
    • captionOverlaid
    {"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}}

    画像の位置を示します。


    0.0 ~ 1.0 の間の 2 つの数値で、画像の左側と下側に割り当てられる余白の割合を示します。 値 (0.0, 0.0) の場合、画像はボタンの四角形の左下隅に配置されます。 値 (0.5, 0.5) の場合、画像は四角形の中央に配置されます。


    この値は、画像を縦横同率に拡大/縮小する場合にのみ使用されます。

    y Float {"imageScale": {"proportional": true, "y": 0.8}}
    ignoreBorder Boolean {"imageScale": {"ignoreBorder": true}}

    ボタンの外観を拡大/縮小して、注釈の境界内にボタン全体を収めるかどうかを示します。境界線の幅は考慮されません。


  9. 署名フィールドの設定

    名前 説明
    lockType

    Enum string:

    • all
    • specifiedOnly
    • allButSpecified
    {"lockType": "specifiedOnly"} ロックされたフィールドのタイプを示します。
    fieldNames String Array {"fieldNames": ["signerName", "time"]} lockType プロパティに応じて、処理に含める/処理から除外するフィールドの名前のリストを示します。
    LockedFields Boolean {"LockedFields": true} 署名フィールドが署名されたときにフォームフィールドをロックするかどうかを示します。

    メモ:テンプレート構文では、電子署名フィールドのみを PDF に生成します。署名フィールドに署名を追加したい場合は、DioDocs for PDF を使用する必要があります。

上記の標準的な PDF のフォームフィールドとは別に、テンプレート構文は PDF フォームを生成するためのカスタム入力タイプもサポートしています。詳細については、「カスタム入力タイプ」を参照してください。