Has visto este plugin?

https://github.com/FriendsOfCake/CakePdf

Te va a hacer feliz si quieres generar dinámicamente PDFs desde tu 
aplicación.

Saludos!

On Wednesday, September 17, 2014 5:10:15 PM UTC+1, JHONY JAVIER BURBANO 
ROBLES wrote:
>
> 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: &nbsp;</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: 
> &nbsp;</label> <i style="font-style:oblique; font-size:14 
> ">'.$nomencab['Encabezadoordendia']['numero'].' </i>'.'  
>             <br>
>             <label style="font-size:16px;"> Hora del Orden del 
> D&iacute;a:&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&raquo;&nbsp;&nbsp;'.$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 cakephp-es+unsubscr...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.
Visita este grupo en http://groups.google.com/group/cakephp-es.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Responder a