Saya mencipta perlindungan kata laluan menggunakan kod berikut,
$dompdf = new Dompdf(array('enable_remote' => true)); $dompdf->loadHtml($html_print); #(Optional) Setup the paper size and orientation $dompdf->setPaper('A4', 'landscape'); #Render the HTML as PDF $dompdf->render(); #PASSWORD PROTECTION $dompdf->getCanvas() ->get_cpdf() ->setEncryption(1234, 5678, ['print', 'modify', 'copy', 'add']); #Output the generated PDF to Browser $dompdf->stream($filename); #SAVE THE FILE TO SERVER $output = $dompdf->output(); $filename = $filename.'-'.time().'.pdf'; file_put_contents('../documents/'.$filename, $output);
Ia berfungsi dengan baik apabila saya memuat turun fail.
Saya juga menyimpan fail ini dalam pelayan sebelum memuat turun. Tetapi apabila saya cuba memuat turun fail itu kemudian, ia tidak boleh dibuka dengan kata laluan yang betul. Jika saya tidak menetapkan perlindungan kata laluan ia berfungsi dengan lancar
Boleh sesiapa tolong saya?
Mendapati masalah. Terdapat kunci bernama "p" pada tatasusunan maklumat yang disulitkan, yang mereka panggil "nilai-p". Apabila PDF distrim, nilai p berubah daripada 252 kepada -4. Bahagian kod yang melakukan ini diulas:
Memandangkan nilai-p berubah semasa output pertama, kali kedua anda mengeluarkan pdf, ia menulis fail dengan nilai yang salah.
Nampaknya anda mempunyai dua penyelesaian. Cara pertama ialah mengeluarkan PDF ke fail dahulu dan kemudian menulis kod anda sendiri untuk menggemakan fail itu ke penyemak imbas, atau anda boleh menetapkan semula nilai-p antara aliran dan output seperti ini:
Semoga membantu.