在symfony中创建pdf 2.3。*

时间:2014-02-28 12:30:00

标签: php symfony pdf wkhtmltopdf symfony-2.3

我在symfony 2.3中搜索过创建pdf文件,但没有成功。我有2个捆绑

  1. Knp snapy bundle而另一个是
  2. psliwa / PHPPdf
  3. 我的任务是点击下载pdf文件。为此,我在html.twig中给出了链接,如

    <a href="{{path('route name')}}">Download file</a>
    

    在pdf操作中,我正在生成PDF文件

    在knp snapy bundle中我正在做:

    $html = $this->renderView('MyBundle:Foo:bar.html.twig', array(
        'some'  => $vars
    ));
    
    return new Response(
        $this->get('knp_snappy.pdf')->getOutputFromHtml($html),
        200,
        array(
            'Content-Type'          => 'application/pdf',
            'Content-Disposition'   => 'attachment; filename="file.pdf"'
        )
    );
    

    得到错误

      

    退出状态代码'1'表示出错了:stderr:“The   系统找不到指定的路径。

    如果是,则安装需要wkpdftohtml,那么如何在基于共享的托管上安装。

    在psliwa / PHPdf中,我已经阅读了以下示例:

    得到了

      

    无法找到twig文件

    如果我将$format = $this->get('request')->get('_format');更改为$format='pdf';,则会显示简单的html文件 无法理解我应该怎样做才能完成任务...

2 个答案:

答案 0 :(得分:1)

是。对于Knp Snappy Bundle,需要wkhtmltopdf,你需要在config.yml中正确配置

knp_snappy:
pdf:
    enabled:    true
    binary:     /usr/local/bin/wkhtmltopdf #path to wkhtmltopdf binary
    options:    []

答案 1 :(得分:0)

这是使用psliwa / PHPPdf从实时共享主机环境中的控制器中摘录的:

    $facade = $this->get('ps_pdf.facade');
    $response = new Response();
    $this->render('ManaClientBundle:Contact:roster.html.twig', array(
        'date' => $found['latestDate'],
        'center' => $location,
        'roster' => $found['contactSet'],
            ), $response);
    $date = new \DateTime($found['latestDate']);
    $filename = str_replace(' ', '', $location) . date_format($date, '_Ymd') . '.pdf';
    $xml = $response->getContent();
    $stylesheet = $this->renderView('ManaClientBundle:Contact:contact.xml.twig', array());
    $content = $facade->render($xml, $stylesheet);
    return new Response($content, 200, array
        ('content-type' => 'application/pdf',
        'Content-Disposition' => 'attachment; filename=' . $filename
    ));