FPDI-Protection
Composer version of Setasign FPDI-Protection and FPDF Protection script, (*1)
This script allows to protect the PDF, that is to say prevent people from copying its content, print it or modify it., (*2)
Install
composer require madnh/fpdi-protection
USAGE
SetProtection([number permissions [, string user_pass [, string owner_pass]]])
- permissions: the set of permissions. Empty by default (only viewing is allowed).
- user_pass: user password. Empty by default.
- owner_pass: owner password. If not specified, a random value is used.
Permissions
The permission array contains values taken from the following list:, (*3)
-
FPDI_Protection::CAN_PRINT: print the document
-
FPDI_Protection::CAN_MODIFY: modify it (except for annotations and forms)
-
FPDI_Protection::CAN_COPY: copy text and images to the clipboard
-
FPDI_Protection::CAN_ANNOT_FORMS: add annotations and forms
Example
$src_file = 'source.pdf';
$dest_file = 'protected.pdf';
$pdf = new \FPDI_Protection();
$pagecount = $pdf->setSourceFile($src_file);
for ($loop = 1; $loop <= $pagecount; $loop++) {
$tplidx = $pdf->importPage($loop);
$pdf->addPage();
$pdf->useTemplate($tplidx);
}
$pdf->SetProtection(\FPDI_Protection::FULL_PERMISSIONS);
//$pdf->SetProtection(\FPDI_Protection::FULL_PERMISSIONS, '123456');
//$pdf->SetProtection(\FPDI_Protection::FULL_PERMISSIONS, '123456', 'ABCDEF');
$pdf->Output($dest_file, 'F');
IMPORTANT
Some PDF readers like Firefox ignore the protection settings, which strongly reduces the usefulness of this script., (*4)