我是一个初学者,我想从树枝视图生成pdf。我安装了knpsnappy然后我真的不知道该怎么做。我创建了一个新的控制器,我把它放在github上。
应用程序/配置/ config.yml
knp_snappy:
pdf:
enabled: true
binary: "\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe\""
options: []
image:
enabled: true
binary: "\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltoimage.exe\""
options: []
我在AppKernel中正确添加了这一行:
new Knp\Bundle\SnappyBundle\KnpSnappyBundle(),
SA \ UserBundle \控制器\ PdfController
<?php
namespace SA\UserBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class PdfController extends Controller
{
public function generateAction()
{
$html = $this->renderView('FOSUserBundle:Profile:show.html.twig',
array('form' => $form->createView(),
));
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="dossiercandidat.pdf"'
)
);
}
}
资源\设置\ routing.yml中
user_folder:
defaults: { _controller: SAUserBundle:Pdf:generate }
path: /profile
我在我的树枝上添加了这一行: SRC \ SA \ UserBundle \资源\视图\资料\ show.html.twig
<form action=" {{ path('user_folder') }} "><input type="submit" value="PDF" onClick=" {{ path('user_folder') }} "></form>
没有错误,但当我点击按钮时,它不起作用。也许我没有正确理解如何使用捆绑包。我需要你的帮助!
答案 0 :(得分:0)
您的控制器和配置看起来不错。尝试使用链接而不是表单来测试PDF生成:
<a href="{{ path('user_folder') }}">Click</a>
根据您使用的环境
检查app / dev.log或app / prod.log答案 1 :(得分:0)
目标是拥有一个包含var。
内容的其他视图pdf通常带有数据库中的内容。因此,您必须获取用户的内容,并创建第二个视图调用'content_user.html.twig',其中包含用户的内容并生成此视图。
你的控制器:
<?php
namespace SA\UserBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class PdfController extends Controller
{
public function generateAction()
{
$html = $this->renderView('FOSUserBundle:Profile:content_user.html.twig',
array('user' => $this->getUser(),
));
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="dossiercandidat.pdf"'
)
);
}
}
在content_user.html.twig中,您可以在树枝中管理数据:
Username : {{user.username}}
Firstname: {{user.firstname}}