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(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*/ ?> |