そういった仕掛け付きのPDFを作るには、アドビの「Acrobat Pro DC」が必要だ。有料だが、月々1580円(年間契約あり)から使える。考え方としては、PDF上に邪魔なボタンを配置しておき、期日まではJavaScriptで自動的にそのボタンを非表示にするが、期日をすぎるとJavaScriptが動作しなくなって、邪魔なボタンが表示されたままになる……という仕組みだ。
ここで紹介する手順で作成したPDFは、「Acrobat Reader DC」または「Acrobat Pro DC」など、JavaScriptの実行が可能な一部のPDFリーダーでしか正しく開けないことに注意してほしい。Macの「プレビュー」などJavaScriptの実行機能がないビューワーでは、邪魔なボタンが表示されたままになり、正しく表示できない。
なお、この方法で作成したPDFは、設定した期日後になれば絶対に開けないというわけではない。パソコンに詳しい人なら開く方法を思いつくかもしれないので、過信は禁物だ。また、無料の「Acrobat Reader DC」だけでは、以下の手順は実行できない。
▲閲覧期限を設定したいPDFをAcrobat Pro DCで開く。右のメニューから「フォームを準備」をクリック
▲次の画面でファイルを選択しておき、「開始」をクリックする
▲ファイルによっては、フォームが配置されてしまうことがあるが、その場合はクリックして選択し、Deleteキーを押してフォームは削除しておこう
▲画面上のツールバーでフォームボタンをクリックし、隠したい部分の上をドラッグすると、ボタンを配置できる
▲巨大なボタンが配置できた。「フィールド名」にボタンの名前をつけるが、半角英数字で適当な文字列を入力しよう。なお、あとでボタンの名前を入力しなければならないので、メモしておくとよい
▲メニューの「表示」→「表示切り替え」→「ナビゲーションパネル」→「ページサムネール」を選択し、画面左にページサムネールのバーを表示する
▲ボタンを配置したページのサムネールを右クリックして「ページのプロパティ」を選択する
▲「ページのプロパティ」ダイアログが表示されるので、「アクション」タブの「トリガーを選択」で「ページを開く」を、「アクションを選択」で「JavaScriptを実行」を選択して「追加」ボタンをクリックする
▲「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)。ご指摘ありがとうございました。
▲「ページのプロパティ」ダイアログに戻るので、「OK」ボタンをクリック
▲すると、もとの邪魔なボタンが表示された画面に戻る。ボタンの設定を確認するため、ボタンを右クリックし、「プロパティ」をクリック
▲「ボタンのプロパティ」ダイアログが表示される。「一般」タブの「一般プロパティ」で「表示と印刷」が「表示」になっていることを確認しよう。ここが「非表示」などになっていると、期限を過ぎても邪魔なボタンが表示されず、そのまま読めてしまう
PDFファイルに編集制限をかける
ここまでの操作で閲覧期限を設定することはできたので、一度、Acrobat Reader DCや、本来うまく表示されないはずのPDFリーダーで動作を確認してみよう。狙い通りの動きをしないときは、コピー&ペーストしたJavaScriptのコードに書き間違いがないか、上で確認した「ボタンのプロパティ」ダイアログの設定が間違っていないかを調べてみてほしい。次に、編集機能を制限するためのパスワードを設定する。これは、PDFを受け取った人がこのPDFを編集して、設定した閲覧期限を勝手に削除できないようにするための手順だ。
▲右側のメニューで「保護」を選択すると、画面上にツールバーが表示される。「詳細オプション」→「セキュリティプロパティ」を選択する
▲「文書のプロパティ」ダイアログが開くので、「セキュリティ」タブの「セキュリティ方法」で「パスワードによるセキュリティ」を選択する
▲「パスワードによるセキュリティ」ダイアログが開くので、「文書の印刷および〜」にチェックを付けて、「権限パスワード」に編集機能を制限するためのパスワードを入力して「OK」をクリック。このパスワードを忘れて、元のPDFファイルを削除してしまうと、閲覧期限の変更などができなくなるので注意する。これで手順はすべて完了だ
▲設定した閲覧期限を過ぎたPDFを開こうとすると、このようにアラートが表示される。「OK」をクリックしてダイアログを消しても、下に表示された邪魔なボタンは消えないので、文書の中身を見ることができない
類似の機能を提供するサービスも存在するが、そちらはAcrobat Pro DC以外の料金がかなり掛かる。かなり長い手順なので、よほど大切な文書でないとやりたくないかもしれないが、最小限のコストで収めたいなら、この方法がベストだろう。
3 comments:
参考にさせていただき、とても助かりました。
ありがとうございます。
1点、Javascriptのコードですが、ブログ上の物は最後の{}が閉じられていないため、
そのままでは動きませんでしたので、お知らせしておきます。
うわ、本当ですね。
ありがとうございます!修正しておきます。
とても助かります。
質問ですが、隠したいページが複数ある場合、全部のページをフォームで隠すことになり、かつフィールド名も増えますが、その場合のjavascriptの書き方を教えて頂けませんか。
Post a Comment