Foros del Web » Programando para Internet » PHP »

Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Estas en el tema de Pasar como parametro a la función Cell() de la libreria FPDF una variable. en el foro de PHP en Foros del Web. Hola a todos. Tengo un problema cuando intento montar un pdf con CodeIgniter con la librería FPDF. A la función Cell() le paso como string ...
  #1 (permalink)  
Antiguo 17/07/2013, 02:41
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Hola a todos. Tengo un problema cuando intento montar un pdf con CodeIgniter con la librería FPDF.

A la función Cell() le paso como string una variable: $cabecera. Esta variable es el resultado de la concatenación de otras variables:

$cabecera = $cliente->razonsocial . $cliente->direccion . $cliente->codpostal . $cliente->poblacion . $cliente->provincia . $cliente->nif;

$this->Cell(60,30,$cabecera,1,0,'R');

Cuando imprimo $cabecera con un dump, la variable tiene valor, pero cuando se la paso a la función Cell() no me pinta nada en el pdf, solo el cuadro en blanco. Por otra parte, necesito que cuando se concatenen las variables, éstas estén separadas por un salto de línea y no me funciona ni el \n ni la variable de php PHP_EOL.

¿Me pueden ayudar? Muchas gracias!!!

Sigo mirando cual puede ser el inconveniente y parece que cuando el texto es muy largo, es cuando da problemas. Estoy utilizando ahora loa función MultiCell() y me pasa lo mismo, pero cuando imprimo en el pdf una variable que contiene un texto más corto, siq que aparece correctamente en el pdf. no sé como solucionarlo!!!!

Última edición por claradebock; 17/07/2013 a las 03:08 Razón: Posible problema
  #2 (permalink)  
Antiguo 17/07/2013, 06:47
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Hola claradebock,

Solo se me ocurre ¿has probado a darle más anchura para ver si te cabe?, es decir, en lugar de:

Cita:
Iniciado por claradebock Ver Mensaje

Código PHP:
Ver original
  1. $this->Cell(60,30,$cabecera,1,0,'R');
Lo puedes hacer así:

Código PHP:
Ver original
  1. $this->Cell(100,30,$cabecera,1,0,'R');
  2.  
  3. //o si la dejas en 0, te ocupará todo el ancho de la página
  4.  
  5. $this->Cell(0,30,$cabecera,1,0,'R');

Otra opción es que, en vez de concatenar la variable, lo hagas en más "trozos", por ejemplo, en lugar de:

Cita:
Iniciado por claradebock Ver Mensaje

Código PHP:
Ver original
  1. $cabecera = $cliente->razonsocial . $cliente->direccion . $cliente->codpostal . $cliente->poblacion . $cliente->provincia . $cliente->nif;
  2.  
  3. $this->Cell(60,30,$cabecera,1,0,'R');
Lo puedes hacer así:

Código PHP:
Ver original
  1. $razonsocial = $cliente->razonsocial;
  2.  
  3. $direccion = $cliente->direccion;
  4.  
  5. $codpostal = $cliente->codpostal;
  6.  
  7. $poblacion = $cliente->poblacion;
  8.  
  9. $provincia = $cliente->provincia;
  10.  
  11. $nif = $cliente->nif;
  12.  
  13. $this->Cell(60,30,$razonsocial,1,0,'R');
  14.  
  15. $this->Cell(60,30,$direccion,1,0,'R');
  16.  
  17. $this->Cell(60,30,$codpostal,1,0,'R');
  18.  
  19. $this->Cell(60,30,$poblacion,1,0,'R');
  20.  
  21. $this->Cell(60,30,$provincia,1,0,'R');
  22.  
  23. $this->Cell(60,30,$nif,1,0,'R');

Cita:
Iniciado por claradebock Ver Mensaje
Cuando imprimo $cabecera con un dump, la variable tiene valor, pero cuando se la paso a la función Cell() no me pinta nada en el pdf, solo el cuadro en blanco. Por otra parte, necesito que cuando se concatenen las variables, éstas estén separadas por un salto de línea y no me funciona ni el \n ni la variable de php PHP_EOL.
Para el salto de línea, debes usar Ln()

Aquí tienes el tutorial de cómo usar fpdf:

http://fpdf.org/es/tutorial/index.php

Espero haberte servido de ayuda.

.
  #3 (permalink)  
Antiguo 17/07/2013, 08:08
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Muchas gracias, Rubén. Efectivamente el problema era el tamaño de la celda. Poniendo el tamaño correcto hace incluso automáticamente los saltos de línea. Ahora me encuentro con otro inconveniente. Me gustaría crear el cuerpo de las facturas que estoy haciendo utilizando etiquetas html y estilos css. Es decir, crear una tabla en html aplicándole estilos y guardar toda la tabla en una variable (así lo hice cuando intentaba usar la librería tcpdf. Esa variable se la pasaba como parámetro a la función WriteHtml y me montaba la tabla en el pdf). No sé si esta librería (CPDF) admite ese tipo de diseño.
  #4 (permalink)  
Antiguo 17/07/2013, 08:33
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Hola claradebock,

Me alegro de que te haya servido. La librería Fpdf sí que admite también el diseño HTML, si te revisas bien el tutorial que te mencionaba antes verás que es muy sencillo.

.
  #5 (permalink)  
Antiguo 17/07/2013, 08:43
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Muchas gracias de nuevo, Rubén. Me pongo a mirarme el tutorial a ver que encuentro.
  #6 (permalink)  
Antiguo 17/07/2013, 08:55
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

No hay de qué, ánimo y suerte, verás que es un tutorial muy fácil de seguir.
  #7 (permalink)  
Antiguo 17/07/2013, 09:03
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

ültima vez que te molesto, Rubén. Por lo que veo es bastante fácil montar el html, el problema es que no me respeta los estilos css, que los tengo metidos en el html. ¿Alguna idea al respecto?
  #8 (permalink)  
Antiguo 17/07/2013, 09:28
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Hola de nuevo claradebock,

No es ninguna molestia, si se puede ayudar, pues se ayuda, que para eso estamos aquí.

Hasta donde yo sé, el intérprete HTML que lleva la clase Fpdf, no permite el uso de estilos, solo permite las etiquetas básicas:

Código HTML:
Ver original
  1. <b></b>
  2. <i></i>
  3. <u></u>
  4. <a></a>
  5. <br>

No sé si alguien sabrá si admite más etiquetas, pero yo creo que no.

Lo siento

.
  #9 (permalink)  
Antiguo 17/07/2013, 10:40
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Pasar como parametro a la función Cell() de la libreria FPDF una variable.

Después de leerme el manual entero y ver un millón de ejemplos he llegado a la misma conclusión. Voy a optar por un servicio externo para crear los PDFs.
Muchas gracias por todo, Rubén.

Etiquetas: codeigniter, fpdf, parametros
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 00:07.