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

前回に続いて、印刷や保存やコピーを禁止した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/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html