PDFは表示させたいけれど、その内容は印刷されたり保存されたりコピーされたくない、という場合は多いようです。
今回は、印刷や保存やコピーを禁止したPDFビューアの作成方法をご紹介したいと思います。
「Antenna House PDF Viewer SDK」を利用したPDFビューアの作成方法は、以下の記事を参考にしてください。
- PDF Viewer SDK で簡単PDFビューア作成(1)
- PDF Viewer SDK で簡単PDFビューア作成(2)
- PDF Viewer SDK で簡単PDFビューア作成(3)
- PDF Viewer SDK で簡単PDFビューア作成(4)
- PDF Viewer SDK で簡単PDFビューア作成(5)
●印刷や保存を禁止する
次の画面は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/trial.html