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(false, 0);
/*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*/
?>