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// Cree un objeto con el servicio, donde este tendra las funciones que necesito.
$reportService = $this->get('report_service');
// Creo el HTML.
$html = $this->renderView('ReportBundle:Price:price.html.twig', $data);
// Declaro el nombre del PDF.
$filename = date("Ymd")."_".$oportunity->getClient()->getIdentity()->getNumber()."_".".pdf"; // Declaro un Array() con las propiedades que se definiran en el PDF.
$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); // Llamo el servicio que cree, donde este me retornara un objeto de tipo PDF.
$pdf = $reportService->getReportPdf($html, $propertyPdf);
// Y creo el objeto de respuesta al navegador.
$response = new Response();
$response->setContent($pdf);
$response->setStatusCode(200);
// Seteo lo headers para que el navegador sepa el tipo de documento a interpretar.
$response->headers->set('Content-Description', 'PDF Cotización');
$response->headers->set('Content-Type', 'application/pdf');
$response->headers->set('Content-Disposition', 'inline; filename='.$filename);
// Y al final retorno este mismo al navegador.
return $response;
Y este es la función que llamo desde mi servicio:
Código PHP:
Ver original/**
* Recibe el HTML, el array() con las propiedades de este.
*/
public function getReportPdf
($html, array $property) {
$KnpSnappyPdf = $this->co->get('knp_snappy.pdf')->getOutputFromHtml($html, $property);
return $KnpSnappyPdf;
}