Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2012, 07:24
Sirrohan
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Ajuste del alto de celdas con TCPDF

Saludos amigos, estoy utilizando la clase TCPDF para generar reportes en PDF, antes utilizaba Ezpdf pero esta ultima era muy compleja para manejar los encabezados y pie de páginas...

En fin, utilizando el ejemplo 11 de esta clase (http://www.tcpdf.org/examples/example_011.phps y http://www.jordigirones.com/78-crear-pdf-php-tcpdf.html) pero en vez de utilizar un archivo, estoy obteniendo un arreglo desde una base de datos en PostgreSQL, de esta tabla obtengo 4 campos: id, nombre, descripción y estatus.

Ahora el problema, el campo descripción es un campo del tipo texto con tamaño indefinido, así que cuando genero el reporte y el campo es mayor al ancho de la celda, esta se superpone sobre el texto de los otros datos, actualmente lo estoy haciendo de esta manera:

Código PHP:
Ver original
  1. $header = array('id', 'nombre', 'descripción ', 'estatus');
  2.  
  3.         $pdf->SetFillColor(255, 0, 0);
  4.         $pdf->SetTextColor(255);
  5.         $pdf->SetDrawColor(128, 0, 0);
  6.         $pdf->SetLineWidth(0.3);
  7.         $pdf->SetFont('', 'B');
  8.         // Cabecera de Tabla
  9.         $w = array(30, 30, 90, 30);
  10.         $num_headers = count($header);
  11.         for($i = 0; $i < $num_headers; ++$i) {
  12.             $pdf->Cell($w[$i], 7, $header[$i], 1, 0, 'C', 1);
  13.         }
  14.         $pdf->Ln();
  15.         // Color y restauracion de la fuente de texto
  16.         $pdf->SetFillColor(224, 235, 255);
  17.         $pdf->SetTextColor(0);
  18.         $pdf->SetFont('');
  19.         //Parametros de la funcion Cell()
  20.         $fill = 1;
  21.         $border='LR';
  22.         $ln=0;
  23.         $fill = true;
  24.         $align='T';
  25.         $link=0;
  26.         $stretch=0;
  27.         $ignore_min_height=false;
  28.         $calign='T';
  29.         $valign='T';
  30.                // Datos
  31.         while($data = $informes->asociar($con)) {// pg_fetch_assoc($consulta_sql)
  32.            
  33.             $pdf->Cell(30, 6, $data["id"], $border, $ln, $align, $fill,$link,$stretch,$ignore_min_height,$calign,$valign);
  34.             $pdf->Cell(30, 6, $data["nombre"], $border, $ln, $align, $fill,$link,$stretch,$ignore_min_height,$calign,$valign);
  35.             $pdf->Cell(90, 6, $data["descripcion"], $border, $ln, $align, $fill,$link,$stretch,$ignore_min_height,$calign,$valign);
  36.             $pdf->Cell(30, 6, $data["estatus"], $border,$ln,$align,$fill,$link,$stretch,$ignore_min_height,$calign,$valign);
  37.             $pdf->Ln();
  38.             $fill=!$fill;
  39.         }
  40.         $pdf->Cell(array_sum($w), 0, '', 'T');//Linea al final del reporte (opcional)

Lo que quiero que se ajuste el alto de la celda si la longitud de la cadena de texto es mayor que el ancho de la celda.

Tambien he revisado la documentacion de esta función y no me ha servido de mucho: http://www.tcpdf.org/doc/classTCPDF....edfe29f8166f31