PDF Viewer SDK で簡単PDFビューア作成(6)

PDFは表示させたいけれど、その内容は印刷されたり保存されたりコピーされたくない、という場合は多いようです。

今回は、印刷や保存やコピーを禁止したPDFビューアの作成方法をご紹介したいと思います。
「Antenna House PDF Viewer SDK」を利用したPDFビューアの作成方法は、以下の記事を参考にしてください。

●印刷や保存を禁止する

次の画面はSDKに付属するサンプルビューアAvsDotNetGuiCtlSampleのソースコードをVisual Studioのフォームデザイナーで開いたところです。

赤枠部分がSDKで提供しているWindows Formコントロールです。それ以外のメニューやボタンはサンプルビューア側で用意しています。

その動作もサンプルビューア側で実装されています。たとえば、印刷メニューが選択された場合はそのイベントハンドラで印刷メソッドPrintDocumentを呼び出します。

private void printMenuItem_Click(object sender, EventArgs e)
{
      pdfPageViewCtrl1.PrintDocument(true, "", 0, 0, 0, 0, 0, 
           AvsPrintOrientation.APO_AUTO, AvsPrintPageScaleMode.APS_SHRINKTOPAPER, 
           true, 1, false, "", 0);
}

最初の引数では、コントロール側で実装ずみの印刷ダイアログを表示するようtrueを指定しています。

実は、印刷や保存を禁止するのは簡単で、単にこのようなメニューやボタンなどのGUIを用意せず、印刷などの処理を呼び出さなければよいのです。そうすればアプリケーションのユーザは操作を行うことができません。実際、第5回までの記事で作成したPDFビューアは、印刷や保存ボタンを用意していませんので、印刷や保存ができません。

では、ショートカット・キーはどうでしょうか。

ショートカット・キーもサンプルビューア側でメニュー項目に割り当てています。以下はForm1.cs ファイルのForm1コンストラクタの冒頭付近のコードです。

printMenuItem.ShortcutKeyDisplayString = "Ctrl+P";
printMenuItem.ShortcutKeys = Keys.Control | Keys.P;

ショートカット・キーもこのような割当を行わなければアプリケーションのユーザは操作ができません。

以上のように、コントロールの機能をアプリケーションから呼び出せないようにすることで、印刷や保存の制限は簡単にできます。

それでは、PDFの編集(注釈やページの入れ替え)や内容のコピーを禁止するにはどうすればよいでしょうか。これはまた次回にご紹介したいと思います。

詳しい機能についてぜひ製品ページをご覧ください。

製品ページ:
https://www.antenna.co.jp/pdfviewersdk/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html