Как сделать PDF защищенным паролем в yii2 php - PullRequest
1 голос
/ 09 марта 2020

Я хочу сделать свой пароль PDF защищенным.

Я использую расширение kartik \ mpdf \ Pdf для генерации PDF.

             $pdf = new Pdf([
                // set to use core fonts only
                'mode' => Pdf::MODE_CORE,
                // A4 paper format
                'format' => Pdf::FORMAT_A4,
                // portrait orientation
                'orientation' => Pdf::ORIENT_PORTRAIT,
                // stream to browser inline
                'destination' => Pdf::DEST_FILE,
                // your html content input
                'content' => $html,
                // any css to be embedded if required
                'cssFile' => '@api/web/css/notes.css',
                // set mPDF properties on the fly
                'options' => ['title' => $note['title']],
                // call mPDF methods on the fly
                'methods' => [
                    'SetHeader' => [''],
                    'SetFooter' => [''],
                ],
            ]);
            $pdf->content = $html;
            $file_name = "test" . rand(7, 100).pdf";
            $password = "122":
            $pdf->setProtection(array(),$password); 
            $pdf->filename = "uploads/" . $file_name;

            echo $pdf->render();

Но это выдает ошибку типа: Вызов неизвестного метода: kartik \ mpdf \ Pdf :: setProtection ();

Я также пробовал следующий код, который ставит метод после имени файла:

$pdf->filename->setProtection(array(), $password);

, но это также дает меня ошибка как: вызов функции-члена setProtection () для строки.

Я знаю, что метод setProtection доступен в библиотеке kartik поставщика, но я не уверен, как его использовать.

Пожалуйста, помогите мне, если у кого-нибудь есть идея.

1 Ответ

3 голосов
/ 09 марта 2020

Попробуйте

$pdf->getApi()->setProtection();

Метод getApi() предназначен для непосредственного вызова объекта MPDF, и именно здесь находится метод SetProtection().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...