代码之家  ›  专栏  ›  技术社区  ›  Anmol G

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

  •  2
  • Anmol G  · 技术社区  · 6 年前

    我正在开发一个带有PHP/Laravel后端的Angular 4项目。

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

    以上两种方法都足以生成普通PDF。

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

    感谢您的帮助。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Sapnesh Naik    6 年前

    不幸的是,这两个包还不支持任何此类功能。看到这个了吗 open issue 对于 pdfMake 还有这个 unmerged PR 对于laravel dompdf .

    虽然你可以用叉子叉 dompdf 你自己试试这些变化。

        2
  •  0
  •   Anmol G    6 年前

    用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. 转到配置/应用。php并添加以下行

      “提供商”=>[ // ... niklasravnsborg\LaravelPdf\PdfServiceProvider::类 ] “别名”=>[ // ... “PDF”=>niklasravnsborg\LaravelPdf\Facades\Pdf::类 ]

    3. 从terminal-php artisan供应商处运行此命令:publish

    4. 基本pdf生成--PHP代码

      使用PDF; 函数generate\u pdf(){ $数据=[ “foo”=>'条形图' ]; $pdf=pdf::加载视图('pdf.document',$data); 返回$pdf->流('document.pdf'); }

    //其他选项包括保存($filename)、下载($filename)、输出() 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');
    }
    

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