2012-03-24 131 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