« 2015年10月 | トップページ | 2016年5月 »

2015/12/04

PDFファイルの印刷時にパスワード入力を要求する方法

PDFファイルは比較的簡単に印刷を許可したり、印刷を禁止したりできて、とても便利です。しかし、意外と一部の人にだけ印刷を許可して、一部の人には印刷を禁止する方法というのは結構な需要があるはずですが、その実装は容易ではないです。

たとえば、社内イントラネットで、管理者だけが印刷できるようにして一般社員は印刷できないようにしたり、情報商材の販売などで、閲覧は無料だが、続きを読んだり、レポートの印刷のためにはお金を払ってくださいというようなシステムを作りたい場合です。



一般には、PDFファイルを2種類準備する方法が取られているのだと思います。社内イントラネットの例で言えば、あらかじめ1つのPDFに対して2種類のPDFを準備して、印刷を許可するユーザーには、印刷を許可しているPDFへ誘導し、一般社員には印刷が不可のPDFに誘導する方法です。ただ、この方法ですと2種類準備する必要があるため、何か情報を修正しないといけない場合、2つとも修正するか、元ファイルのMS Wordなどの文書を修正後、またPDFを2種類準備しなおさなければなりませんでした。また、一般社員が、印刷許可しているPDFにアクセスできないように、PDFをPHPなどのサーバサイドプログラム経由で読み込むか、.htaccessによる認証を行うか、あるいはPDF自身にユーザーパスワード(文書を開くためのパスワード)を設定するなどの手間が必要でした。

1種類のPDFだけで、ある人にはPDFの印刷を許可して、別の人には印刷を禁止する方法としては、恐らく間違った(想定外の)利用方法だと思うのですが、PDFファイルを印刷禁止にして、かつユーザーパスワード(文書を開くためのパスワード)を設定して公開します。一般の人には普通にユーザーパスワードを通知し、閲覧を許可しますが印刷はできないようにします。しかし、印刷を許可する人には、ユーザーパスワードではなく権限パスワード(オーナーパスワード)を通知します。オープンパスワードを設定しているPDFファイルに権限パスワードを入力すると、印刷などが自由にできるPDFファイルとして表示されます。オーナーだからです。

この方法の欠点はただ印刷を許可したいだけの場合に、オーナーパスワードを与えて、全権限を与えてしまうことです。AcrobatなどのPDF編集ソフトがあれば、編集・改ざんは思うがままです。

また、このユーザーパスワード(文書を開くためのパスワード)を設定する方法ですと、ただ閲覧する分にはパスワード入力なしに普通に閲覧させたいという要望には応えられません。

しかし、このたび、「プランセスPDF印刷 Plus」という製品(PDF保存対策ソフトの有料オプションという位置づけ。)を使うと、閲覧自体は普通にできますが、Adobe Readerから印刷しようとした時にだけ、パスワードを聞かれるようになります。パスワードが違えば、印刷自体はできますが、エラーメッセージしか印刷できません(紙の無駄遣い)。

また、うれしいことに、PDF作成ソフトのプリンタードライバーによるPDFファイルの再PDFファイル化(セキュリティのかかっていない普通のPDFファイルにする裏技)も防止できます。Windows 10の「Microsoft Print to PDF」やOneNoteの「Send to OneNOte」などもブロックできます。

さらに、印刷時にログを取得することも可能です。ただ、Adobe Reader(Acrobat)でしか動作しないので、Google Chromeでは閲覧できないのが残念です。また、Firefoxではデフォルトで、内部PDFビューア(pdf.js)での閲覧になるように設定されていますから、最初にAdobe Readerでの閲覧が可能なようにFirefoxを設定していただく必要がある場合があります(Firefoxの設定方法はこちら)。

●プランセスPDF印刷 Plus
http://www.pdf-nosave.com/print_plus.html

サンプルPDF(印刷用パスワードは「pdf2016」です。)

| | コメント (0) | トラックバック (0)

« 2015年10月 | トップページ | 2016年5月 »