在 PdfBundle 的实现中,将样式表添加到 Pdf() 注释既不会引发错误也不会被使用。 呈现的页面是默认的 8.5 x 11,而不是预期的 5 x 8。 将样式表文件名替换为随机字符不会引发错误。 是否需要其他配置才能利用样式表?
控制器:
/**
* @Pdf(stylesheet="ManaClientBundle:Test:pdfstyle.xml.twig",
* @Route("/card")
*/
public function cardAction() {
$em = $this->getDoctrine()->getManager();
$household = $em->getRepository('ManaClientBundle:Household')->find(8607);
$facade = $this->get('ps_pdf.facade');
$response = new Response();
$this->render('ManaClientBundle:Test:card.pdf.twig', array(
'household' => $household,
'date' => date_create(),
), $response);
$xml = $response->getContent();
$content = $facade->render($xml);
return new Response($content, 200, array('content-type' => 'application/pdf'));
}
模板(在.../资源/视图/测试/中)
<pdf>
<page id="card">
...
</page>
</pdf>
样式表 in .../Resources/views/Test/pdfstyle.xml.twig
<stylesheet>
<page id="card" page-size="8in:5in" margin=".5in" font-size="12">
</page>
</stylesheet>
来自捆绑包的作者:
如果直接使用 $fa çade 对象,则不需要 PDF 注释。当您想以隐式方式使用 pdf 渲染时,您应该使用 Pdf 注释。在代码中,您应该将样式表 xml 作为 $fa çade->render(...) 方法的第二个参数传递。
控制器现在读取:
/**
* @Route("/card")
*/
public function cardAction() {
$em = $this->getDoctrine()->getManager();
$household = $em->getRepository('ManaClientBundle:Household')->find(8607);
$stylesheetXml = $this->renderView('ManaClientBundle:Test:pdfstyle.xml.twig', array());
$facade = $this->get('ps_pdf.facade');
$response = new Response();
$this->render('ManaClientBundle:Test:card.pdf.twig', array(
'household' => $household,
'date' => date_create(),
), $response);
$xml = $response->getContent();
$content = $facade->render($xml, $stylesheetXml);
return new Response($content, 200, array('content-type' => 'application/pdf'));
}