Foros del Web » Programando para Internet » PHP »

ayuda con variables en FPDF

Estas en el tema de ayuda con variables en FPDF en el foro de PHP en Foros del Web. He descargado e instalado la libreria FPDF para generar documentos PDF a través del PHP. La verdad, es que está muy buena y los documentos ...
  #1 (permalink)  
Antiguo 28/01/2009, 06:38
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
ayuda con variables en FPDF

He descargado e instalado la libreria FPDF para generar documentos PDF a través del PHP.
La verdad, es que está muy buena y los documentos me quedan bien, el problema es que el contenido se obtiene a través de variables pasadas por php, y el contenido de una de esas variables no es siempre de la misma cantidad de caracteres. Esto hace que el pie de página a veces salga más arriba o más abajo.
Me dirán que por qué no establezco el pie de pagina con la función de pie de pagina, para que quede fijo, y les respondo que en el mismo documento pdf deben salir impresas dos "facturas" que ocupan media hoja a4 cada una (sería el original y el duplicado).
Entonces, me queda algo más o menos así (lo ordeno por filas)

fecha
nombre cliente - numero cliente
direccion - cuit
detalle de la factura (aquí el contenido es variable)

sub-total - IVA - total

y luego se repite todo:

fecha
nombre cliente - numero cliente
direccion - cuit
detalle de la factura (aquí el contenido es variable)

sub-total - IVA - total

el tema es que como el detalle de la factura varía, la última linea de la primera factura y toda la segunda factura, se mueven.
Necesitaría poder definir una altura fija para el campo "detalle" y que nunca se moviera a pesar del contenido.

el código de fpdf es el siguiente:

Código PHP:
<?
    
/*comienza el pdf*/

require('pdf/fpdf.php');

global 
$fac_fecha;
global 
$fac_nombre;
global 
$fac_domicilio;
global 
$fac_localidad;
global 
$fac_IVA1;
global 
$fac_condiciones;
global 
$fac_provincia;
global 
$fac_cuil;
global 
$fac_ordencompra;
global 
$fac_detalle;
global 
$fac_importe;
global 
$fac_IVA2;
global 
$fac_total;


$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',18);
$pdf->SetAutoPageBreak(false0);
/*margen superior*/
$pdf->Cell(60,10,'',0,1,'L');
/*margen izquiedo fecha*/
$pdf->Cell(150,05,'',0,0,'L');
/*FECHA*/
$pdf->Cell(60,10,$fac_fecha,0,1,'C');

$pdf->SetFont('Arial','',9);
/*margen arriba nombre*/
$pdf->Cell(60,05,'',0,1,'L');
/*MARGEN IZQUIERDA NOMBRE*/
$pdf->Cell(12,04,'',0,0,'L');
/*NOMBRE*/
$pdf->Cell(60,04,$fac_nombre,0,1,'L');

/*MARGEN IZQUIERDA DIRECCION*/
$pdf->Cell(15,04,'',0,0,'L');
/*DIRECCION*/
$pdf->Cell(60,04,$fac_domicilio,0,1,'L');
/*MERGEN IZQUIERDA LOCALIDAD*/
$pdf->Cell(15,05,'',0,0,'L');
/*LOCALIDAD*/
$pdf->Cell(124,05,$fac_localidad,0,0,'L');
/*PROVINCIA*/
$pdf->Cell(60,05,$fac_provincia,0,1,'L');

/*margen arriba iva*/
$pdf->Cell(60,4,'',0,1,'L');

/*MARGEN IZQUIERDO IVA*/

$pdf->Cell(5,05,'',0,0,'L');
/*iva*/
$pdf->Cell(134,05,$fac_IVA1,0,0,'L');
/*cuit*/
$pdf->Cell(60,05,$fac_cuil,0,1,'L');
/*margen arriba condiciones*/
$pdf->Cell(60,1,'',0,1,'L');

/*margen izquierdo ondiciones de venta*/
$pdf->Cell(25,05,'',0,0,'L');
/*condiciones de venta*/
$pdf->Cell(118,05,$fac_condiciones,0,0,'L');
$pdf->Cell(60,05,$fac_ordendecompra,0,1,'L');


/*margen arriba detalle*/
$pdf->Cell(60,10,'',0,1,'L');

/*margen izquierdo detalle*/
$pdf->Cell(01,40,'',0,0,'L');
/*detalle*/
$pdf->Write(3,$fac_detalle,0,0,'L');



/*margen arriba SUBTOTAL*/
$pdf->Cell(60,30,'',0,1,'L');


/*margen izquierdo subtotal*/
/*subtotal*/
$pdf->Cell(50,10,$fac_importe,0,0,'T');
/*recargo*/
$pdf->Cell(30,10,'.',0,0,'T');
/*condicioniva*/
$pdf->Cell(90,10,$fac_IVA2,0,0,'T');
/*total*/
$pdf->Cell(45,10,$fac_total,0,0,'T');


/*margen superior*/
$pdf->Cell(60,34,'',0,1,'L');
$pdf->SetFont('Arial','B',18);

/*margen superior*/
$pdf->Cell(60,10,'',0,1,'L');
/*margen izquiedo fecha*/
$pdf->Cell(150,05,'',0,0,'L');
/*FECHA*/
$pdf->Cell(60,10,$fac_fecha,0,1,'C');

$pdf->SetFont('Arial','',9);
/*margen arriba nombre*/
$pdf->Cell(60,05,'',0,1,'L');
/*MARGEN IZQUIERDA NOMBRE*/
$pdf->Cell(12,04,'',0,0,'L');
/*NOMBRE*/
$pdf->Cell(60,04,$fac_nombre,0,1,'L');

/*MARGEN IZQUIERDA DIRECCION*/
$pdf->Cell(15,04,'',0,0,'L');
/*DIRECCION*/
$pdf->Cell(60,04,$fac_direccion,0,1,'L');
/*MERGEN IZQUIERDA LOCALIDAD*/
$pdf->Cell(15,05,'',0,0,'L');
/*LOCALIDAD*/
$pdf->Cell(124,05,$fac_localidad,0,0,'L');
/*PROVINCIA*/
$pdf->Cell(60,05,$fac_provincia,0,1,'L');

/*margen arriba iva*/
$pdf->Cell(60,4,'',0,1,'L');

/*MARGEN IZQUIERDO IVA*/

$pdf->Cell(5,05,'',0,0,'L');
/*iva*/
$pdf->Cell(134,05,$fac_IVA1,0,0,'L');
/*cuit*/
$pdf->Cell(60,05,$fac_cuil,0,1,'L');
/*margen arriba condiciones*/
$pdf->Cell(60,1,'',0,1,'L');

/*margen izquierdo ondiciones de venta*/
$pdf->Cell(25,05,'',0,0,'L');
/*condiciones de venta*/
$pdf->Cell(118,05,$fac_condiciones,0,0,'L');
$pdf->Cell(60,05,$fac_ordendecompra,0,1,'L');


/*margen arriba detalle*/
$pdf->Cell(60,10,'',0,1,'L');

/*margen izquierdo detalle*/
$pdf->Cell(01,40,'',0,0,'L');


/*detalle*/
$pdf->Write(3,$fac_detalle,0,0,'L');


/*margen arriba SUBTOTAL*/
$pdf->Cell(60,30,'',0,1,'L');


/*margen izquierdo subtotal*/
/*subtotal*/
$pdf->Cell(50,10,$fac_importe,0,0,'T');
/*recargo*/
$pdf->Cell(30,10,'.',0,0,'T');
/*condicioniva*/
$pdf->Cell(90,10,$fac_IVA2,0,0,'T');
/*total*/
$pdf->Cell(45,10,$fac_total,0,0,'T');





$pdf->Output();
/*FIN DEL PDF*/
?>
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #2 (permalink)  
Antiguo 28/01/2009, 06:45
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: ayuda con variables en FPDF

Tienes la funcion SetXY para mover el "cursor" del documento.
  #3 (permalink)  
Antiguo 28/01/2009, 06:50
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: ayuda con variables en FPDF

fantástic, muchas gracias darkj: si lo huebiera sabido antes, me hubiera ahorrado de hacer esas celdas vacías para dejar los espacios.
acabo de hacer algunas modificaciones y funciona perfecto.
saludos,
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
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 03:49.