忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

PHP TCPDFで出力されるPDFファイルに保護設定(パスワード設定)する方法について(setProtectionメソッド)

今回は TCPDF で出力するPDFファイルに保護設定を行い、PDFリーダーでオープンする時にパスワードを要求する様に処理します。
保護設定を行う為には setProtection メソッドの呼出を TCPDF クラスの生成直後に行います。

ここであらためて、setProtection メソッドの引数について説明を記します。

// setProtectionメソッド
public function setProtection($permissions, $user_pass='', $owner_pass=null, $mode=0, $pubkeys=null)
// $permissions : 権限の組み合わせ
//                 権限 array('print', 'modify', 'copy', 'annot-forms', 
//                              'fill-forms', 'extract', 'assemble', 'print-high')
// $user_pass   : ユーザー・パスワード
// $owner_pass  : マスタ・パスワード(指定しない場合ランダム値が設定される)
// $mode        : 暗号化強度([0]:RC4 40 bit, [1]:RC4 128 bit, [2]:AES 128 bit, [3]:AES 256 bit)
// $pubkeys     : array of recipients containing public-key certificates ('c') and permissions ('p'). 
//                  For example: array(array('c' => 'file://../examples/data/cert/tcpdf.crt', 
//                                           'p' => array('print'))




以下に簡単な例を記します。

<?php
require_once('../tcpdf/tcpdf.php');

// クラス生成
$pdf = new TCPDF();

// 暗号化の設定
$pdf->setProtection(array('print', 'copy'), '0123', null, 0, null);

// 日本語フォント
$pdf->setFont('kozgopromedium', '', 16);

// 新規ページ
$pdf->AddPage();

// テキスト出力
$pdf->Write(0, 'PDFファイル暗号化テスト...', '', false, '', true);

// PDFファイル出力
$pdf->Output('pdf-encryption-1.pdf', 'D');
?>

特にソースは難しくはありません。これの実行した時に「pdf-encryption-1.pdf」ファイルが登録されます。
そのファイルを Acrobat Reader で開くと、以下の様にパスワード入力が表示されますので setProtection メソッドで指定した「0123」を入力します。


パスワード入力後に Acrobat Reader に「pdf-encryption-1.pdf」ファイルの内容が表示されます。
キャプションのところに「pdf-encryption-1.pdf(保護)」と「保護」の文字があるのが分かります。


さらに Acrobat Reader の左側のメニューアイコンの1番目の「保護」をクリックします。
保護の設定がなされていることが分かると思います。












PR

コメント

コメントを書く