Foros del Web » Programando para Internet » PHP »

Colocar texto muy largo en varias líneas

Estas en el tema de Colocar texto muy largo en varias líneas en el foro de PHP en Foros del Web. Hola, buenas tardes. Tengo una duda, estoy trabajando con FPDF , y por ejemplo, tengo la siguiente línea: Código PHP: $pdf  ->  Cell ( 290 ...
  #1 (permalink)  
Antiguo 05/03/2014, 13:48
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Colocar texto muy largo en varias líneas

Hola, buenas tardes.

Tengo una duda, estoy trabajando con FPDF, y por ejemplo, tengo la siguiente línea:

Código PHP:
$pdf -> Cell(29015utf8_decode($descripcion), 'B'0'L'); 
y en ocasiones, el texto es demasiado largo y se sale del ancho de la celda invadiendo otras celdas. ¿Cómo le podría hacer para que al llegar al largo de esta, el texto se pase a la siguiente línea pero dentro de esa misma celda?

Es decir, si tengo la siguiente descripción:

Cita:
Tarjeta de Video Asus NVIDIA GeForce GTX 760 DirectCU II OC edition, 2 GB GDDR5, DisplayPort, HDMI, DVI, Puerto PCI Express 3.0. Descripción del producto o servicio.
la coloque así:

Cita:
Tarjeta de Video Asus NVIDIA GeForce GTX 760
DirectCU II OC edition, 2 GB GDDR5, DisplayPort,
HDMI, DVI, Puerto PCI Express 3.0. Descripción
del producto o servicio.
Estoy utilizando wordwrap pero no está funcionando, algo mal debo estar haciendo supongo.

Código PHP:
$descripcion wordwrap($rowSelectDetalle['cat_descripcion'], 70"\n"true); 
Sigo investigando.

De antemano, agradezco sus comentarios. Saludos!!
  #2 (permalink)  
Antiguo 05/03/2014, 13:53
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Colocar texto muy largo en varias líneas

No suelo usar fpdf, pero podrías partir la cadena con explode o similares y repetir el proceso de escribir la celda o linea cuantas veces sea necesario.
  #3 (permalink)  
Antiguo 05/03/2014, 17:57
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Colocar texto muy largo en varias líneas

Bueno, al parecer se está solucionando con esto:

1. Obtengo la longitud de la cadena...

Código PHP:
$longitud strlen($rowSelectDetalle['cat_descripcion']); 
2. Configuro el total de iteracciones que hará el for para ir pintando las cadenas, y establezco los límites para la función substr...

Código PHP:
$items round($longitud 70) + 1;
$linf 0;
$lsup 70
3. y por último condiciono a que, sí la cadena es mayor al largo permitido, realice el proceso...

Código PHP:
if($longitud 70){
      for(
$i=0$i<$items$i++){
            
$cadena[$i] = substr($rowSelectDetalle['cat_descripcion'], $linf$lsup);
        
$linf += 70;
                
            echo 
$cadena[$i] . '<br />';
      }            

Con esto, esta funcionando bien, ahora debo invocarlo cuando uso la celda en el código de FPDF, sobre esta línea...

Código PHP:
$pdf -> Cell(29015utf8_decode($descripcion), 'B'0'L'); 
lo cuál no me marco error alguno, sin embargo me desacomodo otras columnas xDDD

Pero, bueno, supongo que esa parte es sólo de ajustes, no? O_o

Aún así, aún no se porque no funcionó con wordwrap... se supone que ea función hace todo lo anterior que hice sólo invocándolo :/

y con explode no me funcionó ocp001a, porque la sintáxis me pide el caracter delimitador, con el cuál no cuento. De todas formas gracias por la ayuda, lo que comentaste me sirvió para probar otras alternativas :D

Saludos!!
  #4 (permalink)  
Antiguo 06/03/2014, 03:56
 
Fecha de Ingreso: abril-2012
Mensajes: 45
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Colocar texto muy largo en varias líneas

Hola,

fpdf dispone de una función para escribir un texto en varias líneas, la funcion es MultiCell, aquí tienes un manual con todas las funciones de fpdf (entre las que se encuentra esta): http://www.fpdf.org/

Un saludo
  #5 (permalink)  
Antiguo 06/03/2014, 09:20
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Colocar texto muy largo en varias líneas

Hola jgm_sala!!

Fíjate que sí utilicé la función de MultiCell(), pero me daba resultados inesperados en la vista de impresión.

No sé si sea por un while que tengo en el cuerpo del documento, yo traigo información de una base de datos, estoy imprimiendo un pedido, y en el cuerpo imprimo el detalle del pedido (cantidad, descripción, importe, precio) y obviamente la descripción es la única celda que se incrementaría.

No sé si la usé mal, pero seguí las instrucciones del manual y algunos ejemplos que vi en internet, pero no me daba los resultados que quería :(

De todas formas esto es como un previo, entonces tengo tiempo te reexplorar las demás alternativas y ver porque no funcionaba correctamente ^^

De antemano gracias por tu respuesta :D

Etiquetas: largo, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:04.