getResourceForPdf($albaran_id)->get()->getRow(); $data['albaranLineas'] = $lineasAlbaranModel->getResourceForPdf($albaran_id)->get()->getResultObject(); return view(getenv('theme.path') . 'pdfs/albaran', $data); } public function generar($albaran_id) { // Cargar modelos $albaranModel = model('App\Models\Albaranes\AlbaranModel'); $lineasAlbaranModel = model('App\Models\Albaranes\AlbaranLineaModel'); // Informacion del presupuesto $data['albaran'] = $albaranModel->getResourceForPdf($albaran_id)->get()->getRow(); $data['albaranLineas'] = $lineasAlbaranModel->getResourceForPdf($albaran_id)->get()->getResultObject(); // Obtener contenido HTML de la vista $html = view(getenv('theme.path') . 'pdfs/albaran', $data); // Cargar CSS desde archivo local $css = file_get_contents(FCPATH . 'themes/vuexy/css/pdf.albaran.css'); // Combinar CSS y HTML $html_con_css = "" . $html; // Crear una instancia de Dompdf $options = new \Dompdf\Options(); $options->set('isHtml5ParserEnabled', true); $options->set('isPhpEnabled', true); $options->set('isRemoteEnabled', true); $dompdf = new \Dompdf\Dompdf($options); // Contenido HTML del documento $dompdf->loadHtml($html_con_css); // Establecer el tamaño del papel $dompdf->setPaper('A4', 'portrait'); // Renderizar el PDF $dompdf->render(); // Obtener el contenido generado $output = $dompdf->output(); // Establecer las cabeceras para visualizar en lugar de descargar $file_name = "presupuesto-$albaran_id.pdf"; return $this->response ->setStatusCode(200) ->setHeader('Content-Type', 'application/pdf') ->setHeader('Content-Disposition', 'inline; filename="' . $file_name . '"') ->setHeader('Cache-Control', 'private, max-age=0, must-revalidate') ->setHeader('Pragma', 'public') ->setHeader('Content-Length', strlen($output)) ->setBody($output); } public function generarAnonimo($albaran_id) { // Cargar modelos $albaranModel = model('App\Models\Albaranes\AlbaranModel'); $lineasAlbaranModel = model('App\Models\Albaranes\AlbaranLineaModel'); // Informacion del presupuesto $data['albaran'] = $albaranModel->getResourceForPdf($albaran_id)->get()->getRow(); $data['albaranLineas'] = $lineasAlbaranModel->getResourceForPdf($albaran_id)->get()->getResultObject(); // Obtener contenido HTML de la vista $html = view(getenv('theme.path') . 'pdfs/albaran-anonimo', $data); // Cargar CSS desde archivo local $css = file_get_contents(FCPATH . 'themes/vuexy/css/pdf.albaran.css'); // Combinar CSS y HTML $html_con_css = "" . $html; // Crear una instancia de Dompdf $options = new \Dompdf\Options(); $options->set('isHtml5ParserEnabled', true); $options->set('isPhpEnabled', true); $options->set('isRemoteEnabled', true); $dompdf = new \Dompdf\Dompdf($options); // Contenido HTML del documento $dompdf->loadHtml($html_con_css); // Establecer el tamaño del papel $dompdf->setPaper('A4', 'portrait'); // Renderizar el PDF $dompdf->render(); // Obtener el contenido generado $output = $dompdf->output(); // Establecer las cabeceras para visualizar en lugar de descargar $file_name = "alabaran-$albaran_id.pdf"; return $this->response ->setStatusCode(200) ->setHeader('Content-Type', 'application/pdf') ->setHeader('Content-Disposition', 'inline; filename="' . $file_name . '"') ->setHeader('Cache-Control', 'private, max-age=0, must-revalidate') ->setHeader('Pragma', 'public') ->setHeader('Content-Length', strlen($output)) ->setBody($output); } }