Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/01/2015, 07:25
Avatar de DeivisAndres
DeivisAndres
 
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 10 meses
Puntos: 41
Respuesta: Problema al retornar Objeto Response en Sysmfony por medio de Ajax

Si ya la conozco, y la probé igualmente pero no se que pasa que los .css no me los toma como son y no me sale ningún style en el PDF... Pero ya me decidí y dejarlo sin el AJAX y mandar la ruta de ejecución así otra pestaña, de todas formas muchísimas gracias por la ayuda me sirvió de mucho gracias. Y el resultado final fue el siguiente:

Código PHP:
Ver original
  1. // Cree un objeto con el servicio, donde este tendra las funciones que necesito.
  2. $reportService = $this->get('report_service');
  3. // Creo el HTML.
  4. $html = $this->renderView('ReportBundle:Price:price.html.twig', $data);
  5. // Declaro el nombre del PDF.
  6. $filename = date("Ymd")."_".$oportunity->getClient()->getIdentity()->getNumber()."_".".pdf";
  7. // Declaro un Array() con las propiedades que se definiran en el PDF.
  8. $propertyPdf =  array('load-error-handling' => 'ignore', 'lowquality' => false, 'print-media-type' => true, 'encoding' => 'utf-8', 'outline-depth' => 8, 'images' => true, 'image-dpi' => 600, 'margin-bottom' => 10, 'margin-left' => 10, 'margin-right' => 10, 'margin-top' => 10, 'header-font-size' => 10, 'footer-font-size' => 10);
  9. // Llamo el servicio que cree, donde este me retornara un objeto de tipo PDF.
  10. $pdf = $reportService->getReportPdf($html, $propertyPdf);
  11. // Y creo el objeto de respuesta al navegador.
  12. $response = new Response();
  13. $response->setContent($pdf);
  14. $response->setStatusCode(200);
  15. // Seteo lo headers para que el navegador sepa el tipo de documento a interpretar.
  16. $response->headers->set('Content-Description', 'PDF Cotización');
  17. $response->headers->set('Content-Type', 'application/pdf');
  18. $response->headers->set('Content-Disposition', 'inline; filename='.$filename);
  19. // Y al final retorno este mismo al navegador.
  20. return $response;

Y este es la función que llamo desde mi servicio:

Código PHP:
Ver original
  1. /**
  2. * Recibe el HTML, el array() con las propiedades de este.
  3. */
  4. public function getReportPdf($html, array $property)
  5. {
  6.     $KnpSnappyPdf = $this->co->get('knp_snappy.pdf')->getOutputFromHtml($html, $property);
  7.     return $KnpSnappyPdf;
  8. }


Última edición por DeivisAndres; 30/01/2015 a las 08:36 Razón: SOLUCIÓN