2012-03-24 84 views
1

我使用Symfony2生成帶有IoTcpdfBundle的pdf文件,但有一個奇怪的行爲,我不明白。生成PDF Symfony2 IoTcpdfBundle

當我在控制器上,我生成的PDF文件是這樣的:

$html = $this->renderView('MyBundle:Docs:solicituddevacaciones.pdf.twig', array()); 
return $this->get('io_tcpdf')->quick_pdf($html); 

那些行生成的PDF文件。一切正常,我可以右鍵點擊該文件來保存它,它是一個.pdf文件。

但是,當我收到使用表單的一些數據,我把行內:

if ($request->getMethod() == 'POST') { 
    $year = $this->get('request')->request->get('year'); 
    $date= $this->get('request')->request->get('date'); 

    $html = $this->renderView('SoflaSoflaBundle:Documentales:solicituddevacaciones.pdf.twig', array()); 
    return $this->get('io_tcpdf')->quick_pdf($html);   
} 

當我用鼠標右鍵單擊該文件保存它,它不是一個.pdf文件時,瀏覽器提示我應該將文件保存爲.htm

爲什麼會發生這種情況?我需要用戶能夠將文件保存爲.pdf文件。

需要此幫助。

+0

這是有史以來最奇怪的問題,我一直沒能解決這個問題尚未... – 2012-04-03 14:44:00

回答

1

我有一些類似的問題,發現捆綁可能現在已經過時。我不得不改變一些設置,最重要的增加另一頭quick_pdf在包的「助手」文件夾TCPDF類的功能:

$response->headers->set('Content-Disposition', 'attachment; filename="'.$file.'"'); 

現在,它的工作就像一個魅力,稱它像控制器:

 $html = $this->renderView('Bundle:Item:print.pdf.twig', array(
     'some' => $this->value, 
    )); 

    return $this->get('io_tcpdf')->quick_pdf($html, "yourFileName.pdf"); 
+0

謝謝哥們,它的工作很棒,但我希望用戶能夠在保存之前預覽文檔 我想預覽該文件,並能夠右鍵單擊並保存,這解決了我所遇到的問題的一半,:)。所以謝謝。 – 2012-05-10 13:05:57

0

嘗試保存html(或更好的是,左鍵單擊而不是右鍵單擊)並檢查該文件的內容。您可能在某處出現錯誤,並且該文件是由symfony生成的用於解釋錯誤的文件。

+0

當我保存生成.html,我有什麼就是把我帶到了PDF格式的視圖。 當我選擇「.pdf」文件的內容時,我有我想要的文本。但我無法將它保存爲.pdf :(。我相信我沒有錯誤,因爲.pdf自動完成兩種方式,接收POST數據和靜態內容,但在接收POST數據時不允許我把文件保存爲.pdf – 2012-03-25 23:41:19

+0

我試過在收到POST值後轉發到另一個控制器,但行爲是一樣的... – 2012-03-26 15:37:13