環境:
* Mac OS X Snow Leopard (MacBook Air [MC506J/A])
* Ruby 1.8.7
* Prawn 0.8.4
Prawn::Document::Security モジュールの encrypt_document メソッドで設定できる。
こんな感じ。
#!/usr/bin/env ruby
$KCODE='u'
require 'rubygems'
require 'prawn'
require 'prawn/security'
pdf = Prawn::Document.new
pdf.text "Hello, world"
pdf.encrypt_document :permissions => {
:print_document => false,
# :modify_document => false,
:modify_contents => false,
:copy_contents => false,
:modify_annotations => false,
}
pdf.render_file("ps.pdf")
ドキュメント Module: Prawn::Document::Security には modify_document というパラメータが紹介されているがこれを指定するとエラーが発生する。ちなみにドキュメントのバージョンは0.10.2だけど、0.8.4でも0.10.2でも同じくエラー発生。
解決策を探してたら、
「:modify_document」でなく「:modify_contents」が正しそう
prawn/security :permissions - noritsuguの日記
ということらしい。。。
prawnのソースコードをすぐに参照できるところに置いといたほうがいいかも。
出力されたPDFファイルは、Adobe Reader 9 のメニューから [文書] → [セキュリティ] → [セキュリティプロパティを表示] → [詳細を表示] でセキュリティ情報が見れる。
見てみるとこんな感じ。
セキュリティ方法: パスワードによるセキュリティ
文書を開くパスワード: はい
権限パスワード: はい
暗号化レベル 40-bit RC4
他の項目については以下の表にまとめてみた。
それぞれのパラメータを true に設定した際にどの項目が変化するかがわかるように書いてある。
4つのパラメータ全部に false を指定すると以下の表の項目がすべて「許可しない」状態になる。
print_document | modify_contents | copy_contents | modify_annotations | |
---|---|---|---|---|
印刷 | 高解像度 | 許可しない | 許可しない | 許可しない |
文書の変更 | 許可しない | 許可 | 許可しない | 許可しない |
注釈 | 許可しない | 許可しない | 許可しない | 許可 |
フォームフィールドの入力と署名 | 許可しない | 許可 | 許可しない | 許可 |
文書アセンブリ | 許可しない | 許可 | 許可しない | 許可しない |
内容のコピー | 許可しない | 許可しない | 許可 | 許可しない |
アクセシビリティを有効にする | 許可しない | 許可しない | 許可 | 許可しない |
ページの抽出 | 許可しない | 許可しない | 許可しない | 許可しない |
項目の意味とかは以下のページが参考になる。
* PDFファイルのセキュリティ設定例
* PDF文書情報設定 セキュリティについて | ブレインセラーズ・ドットコム
《 PDFファイルのセキュリティ設定項目一覧 》 # セキュリティ設定項目 説明 (1) セキュリティ方法 「セキュリティなし」の他、「パスワードによるセキュリティ」「デジタルID(証明書)によるセキュリティ」等。 (2) 互換性があるバージョン 暗号化方法の種類。
「Acrobat 3.0およびそれ以降」は40-bit RC4、「Acrobat 5.0およびそれ以降」及び「Acrobat 6.0およびそれ以降」は128-bit RC4、「Acrobat 7.0およびそれ以降」は128-bit AES。(3) 文書を開くパスワード PDFファイルを開く(参照する)際に入力するパスワード。 (4) 権限パスワード PDFファイルのセキュリティ設定を変更する際に入力するパスワード。 (5) 印刷 印刷できるレベルの設定、許可しない/低解像度のみ印刷許可/任意の解像度で印刷許可 が設定可能。 (6) 文書の変更 文書の編集操作可否。 (7) 文書アセンブリ ページの挿入/削除/回転、しおりとサムネールの作成の可否。 (8) 内容のコピーと抽出 内容の選択/コピーの可否 (9) アクセシビリティのための内容の抽出 視覚に障碍を持つユーザに対して、スクリーンリーダ(読み上げ)の利用可否。 (10) ページの抽出 ページの抽出可否。 (11) 注釈 注釈の追加/編集の可否。 (12) フォームフィールドの入力
(注1)フォームに対する入力可否。 (13) 署名
(注1)既存の署名フィールドへの署名可否。 (14) テンプレートページの作成
(注1) (注2)コンテンツの動的な作成等に利用するテンプレートページの作成の可否。 PDF文書情報設定 セキュリティについて | ブレインセラーズ・ドットコム
- (注1)「セキュリティ方法」に「パスワード」、「互換性があるバージョン」に「Acrobat 5.0~」を選択した場合のみ設定可能です。
- (注2)Adobe Acrobat にのみ表示/設定可能なセキュリティ項目です。
tags: Ruby Prawn zurazure
Posted by NI-Lab. (@nilab)