2014-02-28 68 views
1

我已經搜索了在symfony 2.3中創建pdf文件,但沒有成功。我有2捆在symfony 2.3中創建pdf。*

  1. Knp snapy bundle,另一個是
  2. psliwa/PHPPdf

我的任務就是剛纔下載的請點擊PDF文件。爲此,我已經給喜歡

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

在html.twig鏈接在PDF動作我生成的PDF文件

在KNP snapy包我做:

$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:「 系統找不到指定的路徑。

wkpdftohtml需要安裝,如果是的話那麼我該如何安裝基於共享的主機。

在psliwa/PHPdf我從閱讀的例子:

,並得到

找不到樹枝文件

如果我將$format = $this->get('request')->get('_format');更改爲$format='pdf';,那麼它會顯示簡單的html文件。
無法理解我該如何完成任務...

回答

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 
    )); 
1

是的。對於KNP斯納皮捆綁,wkhtmltopdf是必需的,你需要正確配置它在config.yml

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

我正致力於在環境中共享主機... –

+1

將http://wkhtmltopdf.org下載的二進制文件下載到文件夾或bin文件夾,並在配置文件中提供路徑。對於某些功能,您可能需要xvfb。 –