我正在使用knp snappy bundle从我的应用程序生成报告.但是不起作用,当我调用我的控制器生成pdf时会抛出下一个错误:
The exit status code '1' says something went wrong: stderr: "Loading pages (1/6) [> ] 0% [======> ] 10% [=======> ] 12% Warning: Failed to load file:///gestionresiduospel/web/bundles/usuario/css/bootstrap.css (ignore) Warning: Failed to load file:///gestionresiduospel/web/bundles/usuario/js/bootstrap.js (ignore) [============================================================] 100% Counting pages (2/6) [============================================================] Object 1 of 1 Resolving links (4/6) [============================================================] Object 1 of 1 Loading headers and footers (5/6) Printing pages (6/6) [> ] Preparing [============================================================] Page 1 of 1 Done Exit with code 1 due to network error: ContentNotFoundError " stdout: "" command: "C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe" --lowquality "C:\Users\rodrigo\AppData\Local\Temp\knp_snappy5682878973ade7.09664058.html" "C:\Users\rodrigo\AppData\Local\Temp\knp_snappy56828789746968.46649162.pdf".
我的控制器是这样的:
public function historicosDetallePdfAction($id) { $em = $this->getDoctrine()->getManager(); //gets residuos peligrosos. $solicitudRetiro= $em->getRepository('SolicitudRetiroBundle:SolicitudRetiro')->find($id); //gets residuos no peligrosos $residuosPRetirados = $em->getRepository('SolicitudRetiroBundle:RetiroResiduo')->findResiduos($id); //retorna los residuos no peligrosos en la solicitud $residuosNPRetirados = $em->getRepository('SolicitudRetiroBundle:RetiroResiduoNoPeligroso')->findResiduosNoPeligrosos($id); // view generator $html = $this->renderView('SolicitudRetiroBundle:Pdf:resumenSolicitudResiduoRetirado.html.twig', array( 'solicitudRetiro' => $solicitudRetiro, 'residuosRetirados' => $residuosPRetirados, 'residuosNoPel' => $residuosNPRetirados )); // pdf generator return new Response( $this->get('knp_snappy.pdf')->getOutputFromHtml($html), 200, array( 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment; filename="historico.pdf"' ) ); }
我复制了我的网址并使用wkhtmltopdf.exe运行到控制台[CMD] .在控制台中我创建了pdf,但是当我看到该文件只显示我的登录屏幕时.所以我认为可能是关于我的控制器的许可的问题,但我不知道我是如何通过这个.
另一方面,如果你知道另一个工作到symfony的pdf生成器(来自html),这对我也有帮助.
我在symfony2.7下工作
这意味着wkhtmltopdf无法加载HTML文件中的某个资源,如果所有资源都有这样的绝对URL,请检查HTML文件:http://www.yourserver.com/images/myimage.jpg
如果不是这样,请尝试设置它:
{{ app.request.schemeAndHttpHost ~ 'resource relative url' }}
如果要加载与assetic资产{% stylesheets %}
或{% javascript %}
或者{% image %}
你也可以做
{{ app.request.schemeAndHttpHost ~ asset_url }}