今回は 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
コメント