Laravel为现有PDF文件添加密码保护

时间:2018-05-28 03:06:57

标签: php laravel pdf password-protection

我使用的是Laravel 5.4和PHP 7.0。我想为现有的PDF文件添加密码保护,我在互联网上搜索但只找到了将PDF文件从HTML导出为PDF时添加密码保护的解决方案。

请给我一些关于解决这个问题的库或解决方案的建议。

2 个答案:

答案 0 :(得分:0)

像这样

use Illuminate\Http\Request;

class DownloadController extents Controller
{
    public function showForm()
    {
        return view('show.password.form'); //add view with form
    }
    public function download(Request $request)
    {
        if ($request->input('password') === 'your password') {
            return response()->download($pathToFile);
        } else {
            abort(403, 'Unauthorized action.');
        }
    }
}

答案 1 :(得分:0)

输入以下命令:

composer require reposys/laravel-pdf

要开始使用Laravel,请将服务提供商和Facade添加到config / app.php中:

 'providers' => [
// ...
 niklasravnsborg\LaravelPdf\PdfServiceProvider::class
]
'aliases' => [
// ...
'PDF' => niklasravnsborg\LaravelPdf\Facades\Pdf::class
 ]

要设置保护,只需调用SetProtection()方法并传递一个包含权限,用户密码和所有者密码的数组。

密码是可选的。

有一些权限:'copy','print','modify','annot-forms','fill-forms','extract','assemble','print-highres'。

use PDF;

function generate_pdf() {
 $data = [
    'foo' => 'bar'
];
 $pdf = PDF::loadView('pdf.document', $data);
 $pdf->SetProtection(['copy', 'print'], '', 'pass');
 return $pdf->stream('document.pdf');
}