だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

javascriptで関数を仕込むpdfフォームの作り方・基礎編(図説)

社会で最も使われているドキュメントのデータ形式はpdfです。そして、このpdfには、じつはExcelのように計算機能を持たせたり、関数を仕込むことができます。このようなpdfファイルの形式をpdfフォームと呼びます。

本記事では、pdfフォームの基本的な操作方法を解説してきます。

pdfフォームを使うためには

pdfフォームで作成したファイルの利用はAcrobat readerでも可能です。ただ、psdフォームのファイルを作成・編集するためには有償ソフトのAcrobat Proが必要となります。まだ導入していない方はAdobeの公式サイトで月額利用するかパッケージ購入してください。

pdfフォームの作り方

pdfフォームではどのようなことをするかというと、pdfファイルのドキュメントに「フィールド」を設置していきます。「フィールド」はエクセルでいうところの「セル」や「UIボタン」などの役割を持ちます。エクセルはVBAで動かしますが、pdfフォームはjavascriptで動かします。

さっそく作ってみましょう。

pdfフォームのファイル作成の準備をする

まずはAcrobat Proを起動します。
pdf1

サイドメニューの「フォーム」のドロップダウンメニューを開きます。
pdf2

作成の時は、作成を。編集の時は編集を選びます。
pdf3

新規に作成すると、注記が表示されます。
pdf4

保存>OKで大丈夫です。
pdf5

これでフォーム作成の準備が整いました。
pdf6

今は解説のために新規作成の真っ白なファイルにしていますが、すでに文書の仕込まれたpdfファイルを読み込み、そこにフォームフィールドを配置して関数を仕込むことも可能です。

pdfファイルにフィールドを作る

試しにテキストフィールドを作ってみます。これはエクセルの「セル」とほとんど一緒の役割をします。
pdf7

マウスで短形範囲を作り、その大きさでテキストフィールドが作成されます。のちのちjavascriptで動かすことを考えると、フィールド名は半角英数字で作成したほうが無難です。
pdf8

名前を「test_txt_box1」と命名しました。
pdf9

サイドメニューにも名前が反映されました。
pdf10

テキストフィールドのカスタマイズをするには、右クリックでプロパティを選びます。
pdf11

表示方法タブでは、デザインを編集できます。
pdf12

配置タブでは、pdfファイルにおけるテキストフィールドの位置と大きさを指定できます。
pdf13

オプションタブでは、テキストフィールドの表示テキストについて編集できます。
pdf14

フォーマットタブでは、このテキストフィールドが、どのような数字データを扱うか選べます。
pdf15

数値データを選択すると、さらに桁区切りやプラスマイナスなどの選択ができます。
pdf16

検証では、テキストフィールドに条件を定めて関数実行時のエラー判定を設定できます。
pdf17

計算タブでは、そのテキストフィールドに仕込む計算式を設定できます。
pdf18

フィールドを選択して四則演算を設定できます。
pdf19

カスタムの演算スクリプトで、自由な計算式を設定できます。ここの自由記述でjavascriptが必要となります。
pdf20

テキストフィールドのコピーを作成する

テキストフィールドの設定を一つずつやっていると、陽が暮れてしまいます。一つの設定書式が定まったら、コピーをして複製するようにしましょう。サイドメニューの項目で右クリックをして、「複数のコピーを作成」を選択しましょう。
pdf21

どのようにコピーするか設定できます。
pdf22

複製完了です。演算スクリプトなども引き継ぎますので、かなりショートカットになります。
pdf23

pdfフォームの注意点

テキストフィールドにカンタンな計算式などを埋め込むだけのドキュメントであれば良いのですが、複雑な計算式を仕込んだテキストフィールド同士の連動したような、自動計算ファイルを作成しようとすると、けっこう大変です。

たとえば、あるテキストフィールドを作成しており、ちゃんと閉じないまま他のテキストフィールドを選んだりすると、それまで作業していた設定を引き継いで上書きされたり・・・ちょこちょこエラーが生じたりします。カスタムの演算スクリプトを編集する開発環境が非常に悪く、エクセルに比べ、プラットフォームの作り込みは甘いと言わざるを得ません。

逆に、この点が改善されたら、みんながエクセルに頼らず、pdfにシフトできるのにな、などと妄想してしまいます。

まとめ

いかがでしたでしょうか。ぜひpdfフォーム、試してみてください!

ページ上部に戻る