Buenos Dias
Espero se encuentren bien, quisiera pedirles un favor, si me pueden ayudar
con mostrar una informacion en un pdf.
la duda es la Siguiente. tengo una accion en mi controlador y la vista de
esa accion para que se genere el pdf eso me funciona, Lo que no me esta
funcionando en mi VISTA es el foreach. la verdad eh investigado y hecho
varios formas de las que muestran, pero no me ha funcionado, la primera
parte de la variable $html si me muestra datos, pero lo que contiene el
foreach no. y ya eh hecho un debug y si me esta trayendo todo, pero no me
muestra nada del foreach en el pdf. si me pueden ayudar con esta duda se lo
agradezco
CONTROLADOR
public function ver($encabezado = NULL){
if (!$encabezado)
{
$this->Session->setFlash('no has seleccionado ningun
pdf.');
$this->redirect(array('action'=>'index'));
}
$desarrolloordendias = $this->Detalleordendia->find('list');
$this->Detalleordendia->recursive=-1;
$detalleordendias =
$this->Detalleordendia->find("all",array('fields',array('Detalleordendia.detalleplantilla_id'),
"conditions"=>array('Detalleordendia.encabezadoordendia_id'=>$encabezado)
));
foreach ($detalleordendias as $key => $value) {
$variable=$this->requestAction('detalleplantillas/lists',
array('ordendia'=>$value['Detalleordendia']['detalleplantilla_id']));
$detalleordendias[$key]['detalleordendia'] =
$variable;
$varsub =
$this->requestAction('subpuntos/lists',array('ordendia'=>$value['Detalleordendia']['id']));
$detalleordendias[$key]['subpuntos'] = $varsub;
}
$nomencab =
$this->Detalleordendia->Encabezadoordendia->read(null, $encabezado);
$this->set('variable', $variable);
$this->set('nomencab', $nomencab);
$this->set('encabezado',$encabezado);
$this->set('detalleordendias',$detalleordendias);
$this->layout = 'pdf'; //esto usara el layout pdf.ctp
$this->render();
}
VISTA
<?php
App::import('Vendor','tcpdf/tcpdf');
ob_clean();
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT,
PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$ht='';
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 001');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$titulo =' Convocatoria de ';
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH,
$titulo,
PDF_HEADER_STRING, array(30,64,255),
array(100,64,128));
$pdf->setFooterData($tc=array(0,64,0), $lc=array(0,64,128));
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '',
PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '',
PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP,
PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
// $pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set default font subsetting mode
$pdf->setFontSubsetting(true);
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont('dejavusans', '', 14, '', true);
// Add a page
// This method has several options, check the source code
$pdf->AddPage();
// set text shadow effect
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2,
'depth_h'=>0.2, 'color'=>array(196,196,
196), 'opacity'=>1, 'blend_mode'=>
'Normal'));
$html =
'<div class="container">
<div class="panel-body">
<div class="col-md-12" style="text-align:left;">
<label style="font-size:16px; "> Fecha: </label> <i
style="font-style:oblique; font-size:14
">'.$nomencab['Encabezadoordendia']['fecha'].'</i>'.'
<br>
<label style="font-size:16px;"> Número del Orden del Día:
</label> <i style="font-style:oblique; font-size:14
">'.$nomencab['Encabezadoordendia']['numero'].' </i>'.'
<br>
<label style="font-size:16px;"> Hora del Orden del
Día: </label> <i style="font-style:oblique; font-size:14
">'.$nomencab['Encabezadoordendia']['hora'].' </i>'.'
<br> <br>
</div>
<br
<div class="col-md-8" >
<ul class="list-unstyled text-left" >'
;
foreach ($detalleordendias as $detalleordendia){
foreach ($detalleordendia['detalleordendia'] as $deta){
$dd=$deta["Detalleplantilla"]["nompunto"];
$ht.='<li><strong>'. $dd.'</strong></li>' ;
foreach ($detalleordendia['subpuntos'] as $sub){
$ht.=' <ul class="list-unstyled">';
$ht.='<li> » '.$sub["Subpunto"]["nomsubpunto"].'</li>
</ul>';
}
}
}
$htmlfin=' </ul>
</div>
</div>
';
// output the HTML content
$pdf->writeHTML($html,$ht,$htmlfin, true, false, true, false, '');
// ---------------------------------------------------------
// $pdf->Cell(55, 5, 'Date:');
// Close and output PDF document
// This method has several options, check the source code
$pdf->Output('example_001.pdf', 'I');
exit;
//===========================================================
// END OF FILE
//===========================================================
?>
--
El servicio de correo misena es soportado tecnológicamente por © Google y
ofrecido por el Servicio Nacional de Aprendizaje – SENA de manera gratuita
a todos los colombianos y en especial a los aprendices e instructores de
Programas de Formación Titulada y Complementaria. Los contenidos, textos,
imágenes, archivos y puntos de vista enviados en este mensaje son
responsabilidad exclusiva del remitente y no reflejan ni comprometen
oficialmente a la institución. No se autoriza el uso de esta herramienta
para el intercambio de correos masivos, cadenas o spam, ni de mensajes
ofensivos, de carácter político, sexual o religioso, con fines de lucro,
con propósitos delictivos o cualquier otro mensaje que se considere
indebido o que vaya en contra de la Ley.
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía
un correo electrónico a [email protected].
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Visita este grupo en http://groups.google.com/group/cakephp-es.
Para obtener más opciones, visita https://groups.google.com/d/optout.