如何使用javascript从HTML生成PDF时添加pdf的安全属性?

时间:2018-01-29 10:38:46

标签: angular laravel pdf pdfmake maatwebsite-excel

我正在使用PHP / Laravel后端开​​发一个Angular 4项目。

我可以通过两种方式生成PDF: - 1.在前端使用pdfMake 2.通过向后端发送请求,使用dompdf或maatwebsite或任何其他laravel库

上述两种方法都足以生成纯PDF。

问题是我想在生成文件之前添加PDF的一些安全功能。没有内容复制,无打印,页面提取等因此,当用户下载pdf时,这些功能应该在特定的pdf中实现。

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

不幸的是,这两个软件包还不支持任何此类功能。有关pdfMake,请参阅此open issue,对于laravel dompdf,请参阅此unmerged PR

虽然您可以自己分叉dompdf并尝试更改。

答案 1 :(得分:0)

用laravel PHP解决了这个问题。

参考链接: - https://mpdf.github.io/reference/mpdf-functions/setprotection.html

此外,https://packagist.org/packages/niklasravnsborg/laravel-pdf?q=&p=2

  1. 作曲家需要niklasravnsborg / laravel-pdf
  2. 转到config / app.php并添加以下行

    '商' => [     // ...     niklasravnsborg \ LaravelPdf \ PdfServiceProvider ::类 ] '别名' => [     // ...     ' PDF' => niklasravnsborg \ LaravelPdf \外立面\ PDF阅读::类 ]

  3. 从终端运行此命令 - php artisan vendor:publish

  4. 基本pdf生成 - PHP代码

    使用PDF; function generate_pdf(){     $ data = [         '富' => '杆'     ]。     $ pdf = PDF :: loadView(' pdf.document',$ data);     return $ pdf-> stream(' document.pdf'); }

  5. //其他选项是save($ filename),download($ filename),output() 5.使用

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

    //在集保护中传递空白数组而不是复制和打印以拒绝用户的所有权限