PHP FPDF: Bagaimana Melindungi File PDF ?

PHP FPDF: Bagaimana Melindungi File PDF ?

Ada kalanya kita menginginkan suatu file PDF yang digenerate on-the-fly oleh PHP dapat terlindungi dari perubahan oleh pengguna. Di halaman lain mungkin kita menginginkan agar file PDF hanya bisa dicetak tanpa boleh diedit. Dan pada kebutuhan lainnya, kita ingin menambahkan password di file PDF sehingga pengguna yang tidak berhak (tidak mengetahui passwordnya) tidak dapat membukanya. Nah, pada tutorial kali ini akan disampaikan bagaimana melindungi file PDF yang dihasilkan menggunakan library FPDF. Sebelum memulai tutorial, bagi yang belum mengenal library FPDF, ada baiknya mempelajari tutorial saya sebelumnya mengenai bagaimana membuat file PDF dengan FPDF.

pdf-password

Untuk memproteksi file PDF yang dihasilkan dengan library FPDF, kita dapat menggunakan class Protection yang ditulis oleh Klemen Vodopivec yang berlisensi FPDF. Terdapat 3 pengaturan yang menjadi masukan dari class ini, yaitu:

  1. permissions: mengatur jenis hak akses, default-nya kosong (hanya bisa view).
  2. user_pass: password user, defaultnya kosong.
  3. owner_pass: password pemilik file PDF. Jika tidak ditentukan, maka akan digenerate password secara random.

Adapun nilai hak akses (permission) yang dapat dipilih adalah sbb:

  • copy: hak akses dapat meng-copy teks dan gambar.
  • print: hak akses pencetakan dokumen.
  • modify: hak akses mengubah dokumen (kecuali untuk anotasi dan form).
  • annot-forms: hak akses menambahkan anotasi (catatan) dan form

Berikut ini class Protection yang perlu dipanggil / disertakan saat kita mau menambahkan perlindungan terhadap file PDF.

(FFPDF)

Berikut ini beberapa contoh penggunaan class Protection di atas.

Contoh 1: Melindungi File PDF dari meng-copy isi, namun diijinkan mencetak dokumen.

(contoh 1)

Contoh 2: Melindungi File PDF dengan menambahkan Password untuk membukanya.

(Contoh 2)

Demikian beberapa contoh melindungi file PDF. Semoga bermanfaat.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *