加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony 2 kpn snappy生成pdf,输出符合安全区域

发布时间:2020-12-13 17:25:56 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Symfony2 kpn snappy bundle生成pdfs.我想从带有CSS的html页面生成PDF.我找到了一个解决方案,但它有一个问题: $pageUrl = $this-generateUrl('accounts_management_generate_pdf_markup',array('invoice' = $invoiceData),true); // use absolute
我正在使用Symfony2 kpn snappy bundle生成pdfs.我想从带有CSS的html页面生成PDF.我找到了一个解决方案,但它有一个问题:

$pageUrl = $this->generateUrl('accounts_management_generate_pdf_markup',array('invoice' => $invoiceData),true); // use absolute path!

    return new SymfonyComponentHttpFoundationResponse(
        $this->get('knp_snappy.pdf')->getOutput($pageUrl),200,array(
        'Content-Type' => 'application/pdf','Content-Disposition' => 'attachment; filename="file.pdf"'
        )
    );

问题是pageUrl accounts_management_generate_pdf_markup位于安全区域后面,未经身份验证就无法访问.生成的文件只是登录页面,如果未记录,此路径account_management_generate_pdf_markup将重定向到该登录页面.

我的问题是:

有没有办法传递snappy身份验证凭据?
是否有另一种方法使用snappy bundle使用样式生成pdf(css)

解决方法

您可以将会话cookie作为参数添加到getOutput函数:

$pageUrl = $this->generateUrl('route',array('id' => $id),true);
        $session = $this->get('session');
        $session->save();
        session_write_close();

        return new Response(
            $this->get('knp_snappy.pdf')->getOutput($pageUrl,array('cookie' => array($session->getName() => $session->getId()))),array(
                'Content-Type'          => 'application/pdf','Content-Disposition'   => 'attachment; filename="file.pdf"'
            )
        );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读