前回に続いて、印刷や保存やコピーを禁止したPDFビューアの作り方を紹介していきます。
本日はPDFの編集(注釈やページの入れ替え)や内容のコピーを禁止する方法を紹介します。
●PDFの編集やコピーを禁止する
PDF Viewer SDK で提供しているコントロールは、PDFファイルで制限されていなければ、注釈やページの編集、テキストのコピーができます。
保存ボタンを用意しなければ保存はできないのですが、編集もできないように制限したいところです。この動作はコントロールのCtrlStyleプロパティで変更できます。
〇読み取り専用モード
コントロールを読み取り専用にするには、CtrlStyleプロパティにAGCS_READONLY
を指定します。
public Form1()
{
InitializeComponent();
pdfPageViewCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_READONLY;
pdfThumbnailCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_READONLY;
}
PDFPageViewCtrl では、注釈の移動や削除、注釈の属性の編集などができなくなります。注釈を選択して右クリックメニューから開くプロパティダイアログでは、通常は線のスタイルや色を編集できますが、読み取り専用時にはプロパティが編集できません。
また、PDFThumbnailCtrl では、右クリックメニューでカット&ペーストや新規ページ挿入などのページ編集ができなくなります。
〇プレビューモード
読み取り専用モードにすることで編集はできないようになりました。しかし、読み取り専用モードでは PDFPageViewCtrl でのテキストはコピーできます。
テキストをコピーできないようにするには、AGCS_PREVIEWMODE
を指定します。
pdfPageViewCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_PREVIEWMODE;
pdfThumbnailCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_READONLY;
プレビューモードでは注釈も選択できなくなりポップアップ注釈も開きません。
これで編集やコピーを禁止することができました。
CtrlStyleプロパティを使うと、この他にも注釈を非表示にしたり、オープンアクションを実行しない等の制御ができます。
次回は、ユーザが他のファイルはオープンできないようにしてみたいと思います。
詳しい機能についてぜひ製品ページをご覧ください。
- 評価版ダウンロードページ:
- https://www.antenna.co.jp/pdfviewersdk/trial.html