使用 Symfony2 和PdfBundle动态生成 PDF 文件,我确实无法生成文件。
按照文档说明,我已经设置了所有捆绑内容:
自动加载.php:
'Ps' => __DIR__.'/../vendor/bundles',
'PHPPdf' => __DIR__.'/../vendor/PHPPdf/lib',
'Imagine' => array(__DIR__.'/../vendor/PHPPdf/lib', __DIR__.'/../vendor/PHPPdf/lib/vendor/Imagine/lib'),
'Zend' => __DIR__.'/../vendor/PHPPdf/lib/vendor/Zend/library',
'ZendPdf' => __DIR__.'/../vendor/PHPPdf/lib/vendor/ZendPdf/library',
应用内核.php:
... 新的 Ps\PdfBundle\PsPdfBundle(), ...
我想所有设置都已正确配置,因为我没有得到任何“找不到库”,也没有任何东西......
所以,毕竟,我在控制器中这样做:
...
use Ps\PdfBundle\Annotation\Pdf;
...
/**
* @Pdf()
* @Route ("/pdf", name="_pdf")
* @Template()
*/
public function generateInvoicePDFAction($name = 'Pedro')
{
return $this->render('AcmeStoreBundle:Shop:generateInvoice.pdf.twig', array(
'name' => $name,
));
}
并拥有这个树枝文件:
<pdf>
<dynamic-page>
Hello {{ name }}!
</dynamic-page>
</pdf>
好。不知何故,我刚刚在我的页面中得到的只是生成的普通 html,就好像它是普通的响应渲染一样。
Pdf()
注释应该给出创建 PDF 文件而不是呈现普通 HTML 的“特殊”行为。
因此,有了上面的代码,当我请求路由时http://www.mysite.com/*...*/pdf
,我得到的只是呈现的以下 HTML:
<pdf>
<dynamic-page>
Hello Pedro!
</dynamic-page>
</pdf>
(所以是一个只有文字的空白 HTML 页面Hello Pedro!
。
有什么线索吗?我做错什么了吗?除了 *.pdf.twig 版本之外,是否必须有替代 *.html.twig ?我不这么认为... :(