/FPDI-Protection

Composer version of Setasign FPDI-Protection

Primary LanguagePHP

FPDI-Protection

Composer version of Setasign FPDI-Protection and FPDF Protection script

This script allows to protect the PDF, that is to say prevent people from copying its content, print it or modify it.

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:

  • 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.