そういった仕掛け付きのPDFを作るには、アドビの「Acrobat Pro DC」が必要だ。有料だが、月々1580円(年間契約あり)から使える。考え方としては、PDF上に邪魔なボタンを配置しておき、期日まではJavaScriptで自動的にそのボタンを非表示にするが、期日をすぎるとJavaScriptが動作しなくなって、邪魔なボタンが表示されたままになる……という仕組みだ。
ここで紹介する手順で作成したPDFは、「Acrobat Reader DC」または「Acrobat Pro DC」など、JavaScriptの実行が可能な一部のPDFリーダーでしか正しく開けないことに注意してほしい。Macの「プレビュー」などJavaScriptの実行機能がないビューワーでは、邪魔なボタンが表示されたままになり、正しく表示できない。
なお、この方法で作成したPDFは、設定した期日後になれば絶対に開けないというわけではない。パソコンに詳しい人なら開く方法を思いつくかもしれないので、過信は禁物だ。また、無料の「Acrobat Reader DC」だけでは、以下の手順は実行できない。
![322-01.png 322 01](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3gkecTjBQJZzQoJrGzaGbkM9bwMc4_LxSCIjaVh9fqiwsSbM6ALAaUUaUpMJYocNRh966tcZOCI7_lK-qiopO-XGpMwiLk9HInfBOnYiUzL1M_qz2iUI-4n_t9x665HCdumXHwXisuQ/s0/322-01.png)
▲閲覧期限を設定したいPDFをAcrobat Pro DCで開く。右のメニューから「フォームを準備」をクリック
![322-02.png 322 02](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZS5MaigH0p76HL8oXUbTY7HyQYcK77BP2IGc4hphhaH7XPrlxhm58M2nDqEiUKzmPsSAdgAD_mAsARN19gN_MlK3szrTaTUMbpqxTjwW_6sntsW7PoEcMzKlGrM6LXklILBwg-vttFg/s0/322-02.png)
▲次の画面でファイルを選択しておき、「開始」をクリックする
![322-03.png 322 03](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPivzh5yOcRIIV0VEoMdrr_Y4dUvTiE6oiPZv5MuAajVQuqlAwdPfMDjIumTNKmN6LzvMc_y14OqLaH0iPkIrkis2-H-jgG_JYOPeyE4u7Vk5sL5yAKXb9yWSc0EC831mETVcNwaDYoA/s0/322-03.png)
▲ファイルによっては、フォームが配置されてしまうことがあるが、その場合はクリックして選択し、Deleteキーを押してフォームは削除しておこう
![322-04.png 322 04](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuzAGvk4KX1rVKh_K2F6cd1bU0fOa5s5_boVcy5lWNIbbfvB7CORJo2GDKRha-2lRQQ6P2V9w8jT47oAmd0aOb0qoex2AaWzELgGqIjda9rWKm8-r3gc5Em0cJrQnDFrNll0JjvN-V2Q/s0/322-04.png)
▲画面上のツールバーでフォームボタンをクリックし、隠したい部分の上をドラッグすると、ボタンを配置できる
![322-05.png 322 05](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_OsQvb_oQGqfDYRKy4-S34qi1a3FWEh4lPbmidBpMgxwKzMxiI6jNp_tIwxNW068AA4LfZz2SZP4e5yK8E-1gdsfMFpgFKrUAWpd1ZWhSURu7Jcgc6KEuhDfdRMms2wCBHpwUCCyTOg/s0/322-05.png)
▲巨大なボタンが配置できた。「フィールド名」にボタンの名前をつけるが、半角英数字で適当な文字列を入力しよう。なお、あとでボタンの名前を入力しなければならないので、メモしておくとよい
![322-06.png 322 06](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHySKaqRo4fQTaEqx6YwJinSLM8PGaWUnbMud4Jdb9zPWcL50GIXV2uyhMsuO_m6lmUruffCH9osyOxUL6ZQv7qcl-XeskCzFMrBn08XCrCdRV1EQJdLlX2VnWKEp7tLglJ3wDu5jswg/s0/322-06.png)
▲メニューの「表示」→「表示切り替え」→「ナビゲーションパネル」→「ページサムネール」を選択し、画面左にページサムネールのバーを表示する
![322-07.png 322 07](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY73Yf8yIPZQn-81lYaLFh6MdNJRM77Ku6EfM9MwAM6qEDSoLSXVdCbnF_7K9zUy6-3aHRk7p04hyphenhypheno_LWZZi3qsSfdj67VyzoALfCQIyGM8zSvHtTu-hzBqWxUEbM46V36FI6Kgk2rSA/s0/322-07.png)
▲ボタンを配置したページのサムネールを右クリックして「ページのプロパティ」を選択する
![322-08.png 322 08](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitKr5gLC-y5f_30zxR4xjz0ZxmT9S0jiPeba3l_Et9ft5jHtjYWNWmkvWFnsk9V1hzFmjPrOjMZLFWVIAcGcyTt51dEX4jzIk0ASjIw90kHsVIFJctLoIHj2GNwAzbx18HFvCrU7wswQ/s0/322-08.png)
▲「ページのプロパティ」ダイアログが表示されるので、「アクション」タブの「トリガーを選択」で「ページを開く」を、「アクションを選択」で「JavaScriptを実行」を選択して「追加」ボタンをクリックする
![322-09.png 322 09](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfeEyRFe6c8psBWEhiKXKaX520W_xfkPbwMAMiMxQej7Hv67JirMWFQHAbIbrRcgiZyPgPO3qg73j5DOKlPmJ5xx4vV_IuTdSkd0hyv0OsJFCfaSh18zddVmsFTbjDfqT2PB2uzYzflw/s0/322-09.png)
▲「JavaScriptエディター」ダイアログが表示された。ここで中央の欄にJavaScriptのコードを書き込む。コードについては、以下の記述を参照してほしい
JavaScriptのコードをカスタマイズして入力する
次に、PDFを開いたときに邪魔なボタンを非表示にするためのJavaScriptのコードを入力する。この下に貼り付けるコードを掲載するので、メモ帳などにいったんコピーし、閲覧期限の「2019/03/20」を好きな日にちに書き換えてほしい。また、開けないときのメッセージは、ここでは「can't open」としたが、好きなように書き換えてかまわない。そして、ボタンを配置したときに「フィールド名」に入力したボタン名を、以下のコードの「kakusu」のところに入力する。なお、月日は2桁でないと正しく動作しない。2020年4月5日なら「2020/04/05」としよう。コードの書き換えが終わったら、コード全体をコピーして、「JavaScriptエディター」ダイアログにペーストし、「OK」ボタンをクリックしよう。
var comDate = "2019/03/20"; var comField = this.getField("kakusu"); var d = new Date(); var z = "yyyy/mm/dd"; if (comDate < util.printd(z,d)) { app.alert ("can't open"); comField.display = display.visible; } else { comField.display = display.hidden; }
※コードの末尾にカッコが足りなかったので、修正しました(2020/7/11)。ご指摘ありがとうございました。
![322-10.png 322 10](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqn0cf45BvBPgHQ_x4NIfDoxFmfl6tuV7VInVk-HzWNRm510Rzxbf8SUv2BEs9nu0m5YcZAY2gf_HQLcsvWYV9wVEcBXySKV7fqayUbfyKD9FhmU6ueugYglyJqOWujxmG9abEa_nDtg/s0/322-10.png)
▲「ページのプロパティ」ダイアログに戻るので、「OK」ボタンをクリック
![322-11.png 322 11](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP6Yekkit6kCDBj9oEc-VEAJ4HQu_5mXBtVcwvpaCij4jGRNahP4GzLC07cepEyWOJ-P9Qrfu1cujQlId7k8b0rSq1WE6ydGHbnea6GF3bLfTSK370fEsWraDUq53L9H9dl-wTCkvMeg/s0/322-11.png)
▲すると、もとの邪魔なボタンが表示された画面に戻る。ボタンの設定を確認するため、ボタンを右クリックし、「プロパティ」をクリック
![322-12.png 322 12](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNkwVX74tu3NAjfge4473n0-_24XN-_FSlHb09ovKqrvSYbHnQsSfaz3EYqHGgU0-kDteR8_xfu2Y-A5aVsXka2gsRE7-IZ4Z0KVaILoq2lfDK5ZNsoWQehtvvjp2HA_aCMIdD9zw6Bw/s0/322-12.png)
▲「ボタンのプロパティ」ダイアログが表示される。「一般」タブの「一般プロパティ」で「表示と印刷」が「表示」になっていることを確認しよう。ここが「非表示」などになっていると、期限を過ぎても邪魔なボタンが表示されず、そのまま読めてしまう
PDFファイルに編集制限をかける
ここまでの操作で閲覧期限を設定することはできたので、一度、Acrobat Reader DCや、本来うまく表示されないはずのPDFリーダーで動作を確認してみよう。狙い通りの動きをしないときは、コピー&ペーストしたJavaScriptのコードに書き間違いがないか、上で確認した「ボタンのプロパティ」ダイアログの設定が間違っていないかを調べてみてほしい。次に、編集機能を制限するためのパスワードを設定する。これは、PDFを受け取った人がこのPDFを編集して、設定した閲覧期限を勝手に削除できないようにするための手順だ。
![322-13.png 322 13](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtYE3nSrmsPBCD3C0lrDxJXI4fSDNA8IuTPZ25YOKyIeW7EoOUmXiy_4Fqj4rC1ddUK3011n2F8qNtmTiYICtzMdIWlS7JuV-5R9XAmQBBovR0uG9NZtytPww0pRz87cTAW9Oy10dkuQ/s0/322-13.png)
▲右側のメニューで「保護」を選択すると、画面上にツールバーが表示される。「詳細オプション」→「セキュリティプロパティ」を選択する
![322-14.png 322 14](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUUuNTtiwH4UFNeUW7MQHaQ8QstNmabbsVXq8tEi9tq0M-GsbdSRM1n-tLDFPcl37E80vdZyoXNsDMO43P4dguEauyK1_pmIrLkEeglLArwcmPFPNTyvBjlCwwPEvd7Z_cqA8FJZSP_Q/s0/322-14.png)
▲「文書のプロパティ」ダイアログが開くので、「セキュリティ」タブの「セキュリティ方法」で「パスワードによるセキュリティ」を選択する
![322-15.png 322 15](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7dD2IDIABk38lKFL86dNAt8RZHnHkXWwtSHcpoLzoeWUWyhHvySFlo4eIJrMEyyRBtq_W79cZ1qOUgjMRpi6gGL7MIq5UqLtQNY3XiV4Lg0xSc5Ri2frviPa3zpGc9oiKd71DCKDpng/s0/322-15.png)
▲「パスワードによるセキュリティ」ダイアログが開くので、「文書の印刷および〜」にチェックを付けて、「権限パスワード」に編集機能を制限するためのパスワードを入力して「OK」をクリック。このパスワードを忘れて、元のPDFファイルを削除してしまうと、閲覧期限の変更などができなくなるので注意する。これで手順はすべて完了だ
![322-16.png 322 16](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEgE39NoK6cTC6clSA04d1EgqS7W5rBpJhAf4xnuxztD5I5qX2PzANdDKGtjEYbFSaHork4kAu02lrZHWZs9OdgVV99Ev2DfmgGtYndRHTOOHKAVxuKRpaOF4clWuJPkW3yhEdVAGy3g/s0/322-16.png)
▲設定した閲覧期限を過ぎたPDFを開こうとすると、このようにアラートが表示される。「OK」をクリックしてダイアログを消しても、下に表示された邪魔なボタンは消えないので、文書の中身を見ることができない
類似の機能を提供するサービスも存在するが、そちらはAcrobat Pro DC以外の料金がかなり掛かる。かなり長い手順なので、よほど大切な文書でないとやりたくないかもしれないが、最小限のコストで収めたいなら、この方法がベストだろう。
3 comments:
参考にさせていただき、とても助かりました。
ありがとうございます。
1点、Javascriptのコードですが、ブログ上の物は最後の{}が閉じられていないため、
そのままでは動きませんでしたので、お知らせしておきます。
うわ、本当ですね。
ありがとうございます!修正しておきます。
とても助かります。
質問ですが、隠したいページが複数ある場合、全部のページをフォームで隠すことになり、かつフィールド名も増えますが、その場合のjavascriptの書き方を教えて頂けませんか。
Post a Comment