2012-10-03 3 views
2

У меня есть веб-приложение, где пользователи могут загружать PDF-документы. Есть ли библиотека PHP, которую я могу использовать для защиты паролем файла PDF? Мне нужна библиотека, чтобы сохранить все аспекты исходного PDF (то есть размер, шрифты, разрешение и т. Д.).Как защитить паролем загруженный PDF-код в PHP

+6

Вы хотите защитить паролем сам файл или только при попытке открыть его из своего веб-приложения? –

ответ

4

Download the library used: Protect PDF in PHP

<?php 

function pdfEncrypt ($origFile, $password, $destFile){ 
//include the FPDI protection http://www.setasign.de/products/pdf-php-solutions/fpdi-protection-128/ 
require_once('fpdi/FPDI_Protection.php'); 

$pdf =& new FPDI_Protection(); 
// set the format of the destinaton file, in our case 6×9 inch 
$pdf->FPDF('P', 'in', array('6','9')); 

//calculate the number of pages from the original document 
$pagecount = $pdf->setSourceFile($origFile); 

// copy all pages from the old unprotected pdf in the new one 
for ($loop = 1; $loop <= $pagecount; $loop++) { 
    $tplidx = $pdf->importPage($loop); 
    $pdf->addPage(); 
    $pdf->useTemplate($tplidx); 
} 

// protect the new pdf file, and allow no printing, copy etc and leave only reading allowed 
$pdf->SetProtection(array(),$password); 
$pdf->Output($destFile, 'F'); 

return $destFile; 
} 

//password for the pdf file 
$password = '[email protected]'; 

//name of the original file (unprotected) 
$origFile = 'book.pdf'; 

//name of the destination file (password protected and printing rights removed) 
$destFile ='book_protected.pdf'; 

//encrypt the book and create the protected file 
pdfEncrypt($origFile, $password, $destFile); 
?> 

EDIT Original source of library used. Обратите внимание, что мой ответ выше не был протестирован с использованием сценария из исходного источника. Я загрузил из третьей ссылки выше, и я не проверял, точно ли они.

+1

Укажите источник, из которого вы загрузили библиотеку. Эта страница будет более полезной для прямой ссылки на библиотеку. – mccbala

+1

@mccbala См. Мое редактирование. Помните +1 вопрос и ответ, если вы сочтете это полезным. –

Смежные вопросы