Symfony2 とPdfBundleを使用して動的に PDF ファイルを生成すると、実際にファイルを生成できません。
ドキュメントの指示に従って、すべてのバンドルをセットアップしました。
autoload.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',
AppKernel.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>
良い。どういうわけか、自分のページに表示されるのは、通常の Response レンダリングであるかのように生成された通常の html だけです。
注釈は、Pdf()
通常の HTML をレンダリングするのではなく、PDF ファイルを作成するという「特別な」動作を提供することになっています。
したがって、上記のコードを使用して route をリクエストするhttp://www.mysite.com/*...*/pdf
と、次の HTML がレンダリングされます。
<pdf>
<dynamic-page>
Hello Pedro!
</dynamic-page>
</pdf>
(そのため、単語だけが表示された空白の HTML ページが表示Hello Pedro!
されます。
どんな手掛かり?私は何か間違ったことをしていますか?*.pdf.twig バージョンとは別の代替 *.html.twig を持つことは必須ですか? 私はそうは思わない... :(