注文フォームには、数量フィールド、単価フィールド、および合計フィールドがあります。ユーザーが数量と単価を入力すると、合計が自動的に計算されます。紙の上では、ユーザーは電卓を使って計算します。入力可能な PDF では、フォーム自体が計算を行うことができます。自動計算フィールドは、静的なフォームを対話型ツールに変え、エラーを減らし、ユーザーが手動で計算する必要をなくします。
PDF フォーム に計算を追加する機能は、1996 年にリリースされた Acrobat 3.0 以降 PDF 仕様の一部となっています。何十年も前から利用可能であるにもかかわらず、自動計算フィールドは十分に活用されていません。これは、セットアップ プロセスがフォーム エディターのインターフェイスに埋め込まれており、フィールドの名前と計算順序を理解する必要があるためです。

PDF フォームの計算の仕組み
PDF フォーム フィールドには、いくつかのタイプのいずれかに設定できる計算プロパティがあります。最も単純な計算は、フィールドが他の指定されたフィールドの値を合計する合計計算です。積の計算では 2 つのフィールドを乗算します。平均計算では平均値が計算されます。 JavaScript で書かれたカスタム計算スクリプトは、あらゆる数学的演算を実行できます。
計算順序は重要です。フィールド C がフィールド A とフィールド B の合計である場合、フィールド C の計算は、フィールド A とフィールド B が入力された後に実行する必要があります。PDF フォーム プロセッサは、フィールドの設定時に定義した計算順序に従います。計算順序の先頭にあるフィールドが最初に評価されます。別のフィールドに依存するフィールドは、計算順序の後ろに現れる必要があります。
計算を含むFillable PDF フォームは、PDF に埋め込まれた単純なスプレッドシートのように動作します。ユーザーが入力フィールドに値を入力すると、計算フィールドが自動的に更新されます。ユーザーは、「計算」ボタンをクリックしたり、フィールドに入力する以外のアクションを実行したりする必要はありません。ユーザーがタブキーを押すか入力フィールドをクリックして外に出るとすぐに計算が行われます。
ユーザーが誤って計算値を上書きできないように、計算フィールド自体を読み取り専用に設定する必要があります。読み取り専用の計算フィールドには、通常は異なる背景色または枠線を使用して結果が明確に表示され、このフィールドが入力されたものではなく計算されたものであることがユーザーに示されます。
PDFを編集してみる
インストールは必要ありません。ブラウザで直接動作します。
ビジネスフォームの一般的な計算タイプ
注文書と請求書では、小計、税金、合計の計算が使用されます。小計は、すべての項目の合計の合計です。税額は小計に税率を乗じた額となります。合計は小計に税金を加えたものとなります。これらの計算は、PDF フォーム エディターで実装できる単純な合計と積です。
経費レポートでは、各経費カテゴリの合計計算とカテゴリを合計した総計が使用されます。マイルの払い戻しは、走行マイル数にマイルあたりの払い戻し率を乗算します。タイムシートは、労働時間に時給を掛け合わせたものです。これらはそれぞれ、フォームの使いやすさを大幅に向上させる単純な計算です。
WukongPDF は、ブラウザを介したフォーム編集 インタラクティブ PDF を提供します。フォームフィールドを既存の PDF に追加したり、和演算や積演算の基本的な計算を構成したりできます。
PDF フォーム エディターでの計算の設定
Adobe Acrobat で、フォーム準備ツールを開き、計算を含めるフィールドを選択します。 「プロパティ」フィールドを開き、「計算」タブを選択して、計算タイプを選択します。単純な合計の場合は、リストから合計するフィールドを選択します。カスタム計算の場合は、[簡易フィールド表記] または [JavaScript] を選択し、式を入力します。
簡略化されたフィールド表記では、スプレッドシートの数式に似た数式構文が使用されます。フィールド名は変数として使用されます。合計フィールドの式は、小計 + 税金 + 送料となる場合があります。フィールド名は、スペースや大文字の使用も含めて正確に一致する必要があります。フォームを配布する前に、サンプル値を使用して数式をテストし、正しく計算されることを確認します。
複雑な計算の場合、JavaScript は完全なプログラミング機能を提供します。 JavaScript の計算には、ドロップダウン フィールドで選択した州に基づいて異なる税率を適用するなど、条件付きロジックを含めることができます。 JavaScript は PDF ビューアの JavaScript エンジン内で実行されます。このエンジンはブラウザの JavaScript エンジンよりも制限されていますが、フォームの計算には十分です。
配布前の計算フォームのテスト
値の範囲を使用してすべての計算をテストします。可能な最小値を入力し、計算を確認します。一般的な値を入力して確認します。可能な最大値を入力して確認します。数量ゼロや負の値などのエッジケースは、特にテストする必要があります。通常の値では機能するが、エッジ ケースでは失敗する計算は、そのようなエッジ ケースに遭遇したユーザーにエラーを生成します。
複数の PDF リーダーでフォームをテストします。 Adobe Acrobat は JavaScript の計算を完全にサポートしています。ブラウザベースの PDF ビューアでは、JavaScript のサポートが制限されているかまったくサポートされていないため、計算がまったく実行されない場合があります。モバイル PDF ビューアでは、計算サポートも異なります。フォームがブラウザベースまたはモバイルビューアで入力される場合は、計算を回避するか、代替として手動計算指示を提供してください。
計算が機能することを示す記入例を記載したフォームを配布します。この例は、ユーザー ガイドとして、また受信側の PDF リーダーがフォーム計算をサポートしているかどうかを確認するために役立ちます。
数量フィールドと単価フィールドを含む注文フォームには、数量と単価を乗算する明細合計フィールドが役立ちます。行合計フィールドは小計に合計されます。小計には税額に対する税率が乗じられます。小計に税金を加えたものが総計となります。この計算チェーンは、ビジネス フォームで最も一般的なパターンです。
条件付き計算により、フォームにロジックが追加されます。送料フィールドは、注文合計に基づいて計算される場合があります。つまり、50 ドルを超える注文の場合は送料無料、50 ドル未満の注文の場合は定額料金となります。プロモーション コードを入力すると、割引フィールドが適用される場合があります。条件付きロジックでは、フィールド計算スクリプトで JavaScript if ステートメントを使用します。
計算前にユーザー入力を検証することでエラーを防ぎます。数量フィールドには正の数値のみを入力できます。日付フィールドには有効な日付のみを受け入れる必要があります。ユーザーがフィールドを出るときに検証スクリプトが実行され、入力が無効な場合はアラートを表示できます。
フォームのタブ オーダーは、上から下、左から右の自然な読み取りと入力の順序に従っている必要があります。ユーザーが最後の入力フィールドに入力してタブで移動すると、計算フィールドが最終結果で更新されます。タブ オーダーを正しく設定すると、フォーム入力フローの適切な時点で計算がトリガーされます。
エッジケース、数量ゼロ、負の値、非常に大きな数値、空のフィールドを使用してフォームをテストすると、計算で予期しない入力が適切に処理されることが保証されます。ユーザーが入力した値で除算する計算では、除算を実行する前にゼロをチェックする必要があります。
計算フォームを配布するときは、どのフィールドが計算されるか、および計算がどのように行われるかを説明する指示を含めます。フォームのロジックを理解しているユーザーは、計算値を上書きしたり、正しい計算をエラーとして報告したりする可能性が低くなります。
計算精度、表示される小数点以下の桁数は、計算フィールドごとに設定する必要があります。税計算では小数点以下 2 桁を表示する必要があります。数量の計算では整数が表示される必要があります。精度を正しく設定すると、誤った精度を示唆する無意味な小数点以下の表示が防止されます。
ユーザーが入力フィールドを変更したために計算フィールドの値が変更されると、変更は即座に反映されますが、視覚的に強調表示されません。ユーザーは合計が変化したことに気付かない可能性があります。一時的に太字のフォントや微妙な背景の点滅など、計算フィールドに形式の変更を追加すると、計算が更新されたことがユーザーに通知されます。
PDF フォームの計算フィールドは、静的な紙のフォームと動的なスプレッドシート計算の間のギャップを埋め、フォーム ユーザーに PDF ビューアとスプレッドシート アプリケーションを切り替える必要なく、自動計算の利便性を提供します。
自動計算フィールドの設定に費やした時間は、フォームを送信するたびに回収されます。発注書が月に 100 回処理されると、月に 100 回の手動計算が節約されます。 1 年間にわたって、節約された時間はセットアップ時間を大幅に上回りました。
PDF フォームの計算機能は、スプレッドシートほど広範囲ではありませんが、最も一般的なビジネス計算、合計、積、平均、および条件付きロジックを、自己完結型で 1 つのファイルとして配布可能な形式で提供します。
計算フォームの記入方法についてユーザーをトレーニングすると、サポート リクエストやフォーム送信エラーが減少します。フォームの先頭にある簡単な説明ページ、または各計算フィールドのツールチップでは、フォームが自動的に行う機能とユーザーが手動で入力する必要がある内容について説明します。
自動計算フォーム フィールドは、PDF 仕様の中で最も活用されていない機能の 1 つであり、ユーザーがすでに開いて入力する方法を知っている使い慣れたドキュメント形式内でスプレッドシートのような計算を提供します。
結果を自動的に計算するフォームは、ユーザーの認知的負荷を軽減し、送信されたデータのエラー率を減らし、よりクリーンなデータを受け取るフォーム作成者と、計算に費やす時間を短縮するフォーム ユーザーの両方にメリットをもたらします。
PDF フォームでできることと、ほとんどの PDF フォーム作成者が実装していることとの間には大きなギャップがあり、自動計算フィールドでそのギャップを埋めることで、入力者にとって劇的に役立つフォームが作成されます。
| 計算タイプ | 簡略化されたフィールド表記 | 例 |
|---|---|---|
| 和 | フィールド 1 + フィールド 2 + フィールド 3 | 小計 = 項目 1 + 項目 2 + 項目 3 |
| 製品 | フィールド 1 * フィールド 2 | 明細合計 = 数量 * 単価 |
| 平均 | (フィールド 1 + フィールド 2 + フィールド 3) / 3 | 平均スコア = (Q1 + Q2 + Q3) / 3 |
| 条件付き | JavaScript if/else | 送料 = (合計 > 50) ? 0:5.99 |
PDFを編集してみる
インストールは必要ありません。ブラウザで直接動作します。
