Qpdf : PDFのセキュリティ設定を取得するVBA関数

TOP へ > Qpdf  > *


BLACK BABYMETAL

概要

PDFのセキュリティ設定の内容をVBA関数から取得します。

Acrobat OLE を使わずに Qpdf を使用します。

 

▽ Acrobat XI のセキュリティ設定の画面

QPDF : PDFのセキュリティ設定を取得するVBA関数

▽ Dos画面でのQpdf の実行例

▽Acrobat での文書のプロパティ画面

QPDF : PDFのセキュリティ設定を取得するVBA関数

 

Qpdf とは

フリーソフト Qpdf を知らない人は先にコチラを御覧ください。

 

形式

 

引数

  1. 第1引数:qpdfPara_InPdfPath As String  (In)
    入力のPDFファイルのフルパス
  2. 第2引数:qpdfPara_InPdfPassword As String  (In)
    入力のPDFファイルのユーザーパスワード。無ければ""。
  3. 第3引数:strMsg As String  (Out)
    コマンドライン上で表示された内容
  4. 第4引数:strErr As String  (Out)
    エラーメッセージ: エラー無しは ""

 

戻り値

無し。

 

関数 / サンプル

事前設定

  1. コチラを参考にQpdf のダウンロードとインストールを行う。
  2. Qpdf.exe のフルパスをCON_QPDF_PATHにセット。
  3. gDebugMode = True のデバッグモードをFalseにセット。

サンプル





in2.pdf からセキュリティ情報を抜き出し strMsg に取得します。Qpdf.exe に「 --show-encryption 」オプションを使います。

DownloadcLine-qpdfGetEncryption.xls

 

結果

▽PDFにセキュリティ情報が設定されている時。

QPDF : PDFのセキュリティ設定を取得するVBA関数

▽PDFにセキュリティ情報が設定されてない時。

QPDF : PDFのセキュリティ設定を取得するVBA関数

▽ユーザーパスワードが間違っている時。

QPDF : PDFのセキュリティ設定を取得するVBA関数

一段目はプラグラム内からのエラーメッセージ。
二段目は Qpdf.exe からのエラーメッセージ。

 

結果の詳細

関数の引数のstrMsg にコマンドラインの内容が入っています。それを文字列分割(Split)や検索(Instr)で該当する情報を取得できます。以下がその内容の例です。

  1. R = 4
    意味不明。
  2. P = -300
    意味不明。
  3. User password = in3u
    ユーザーパスワードです。無ければ「User password = 」と表示されます。コマンドの入力時に必要なので表示されても意味が無いです。
  4. extract for accessibility: allowed
    アクセシビリティを抽出 : 許可します。
  5. extract for any purpose: allowed
    いかなる目的のために抽出 : 許可します。
    「テキスト、画像、およびその他の内容のコピーを有効にする」
  6. print low resolution: allowed
    低解像度の印刷 : 許可します。
  7. print high resolution: allowed
    高解像度の印刷 : 許可します。
  8. modify document assembly: allowed
    ドキュメントのアセンブリを変更 : 許可します。
  9. modify forms: not allowed
    フォームを変更 : 許可しません。
  10. modify annotations: not allowed
    注釈を変更 : 許可しません。
  11. modify other: not allowed
    その他の変更 : 許可しません。
  12. modify anything: not allowed
    何かを変更 : 許可しません。(コレ何やねん!?
  13. stream encryption method: AESv2
    ストリームの暗号方式 : AESv2
  14. string encryption method: AESv2
    文字列の暗号化方式 : AESv2
  15. file encryption method: AESv2
    ファイルの暗号化方法 : AESv2

 

備考

  • コマンドラインの実行結果が正常かの判定が少し面倒です。strMsg に文字列「extract for accessibility:」が含まれているかで正常終了かの判断としました。
  • strMsg 内での文字列「File is not encrypted」は Qpdf.exe が出したエラーメッセージです。セキュリティ情報が設定されてないPDFファイルを読み込むと出します。エラー扱いにはしません。
  • Xpsf でもセキュリティ情報は取得できますが、こちらの方が詳細に取れます。

 

PDFのセキュリティ

 

< Qpdf へ戻る >

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

コメントをする時は最低でも以下をお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン