Foros del Web » Programando para Internet » PHP »

Cración de PDF en php

Estas en el tema de Cración de PDF en php en el foro de PHP en Foros del Web. Hola...espero y alguna persona me pueda ayudar... mi problema es el siguiente: 1.-Puedo realizar el pdf pero lo que no se!!!...es como hacerle para que ...
  #1 (permalink)  
Antiguo 02/04/2009, 12:26
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes
Puntos: 0
Creación de PDF en php

Hola...espero y alguna persona me pueda ayudar...
mi problema es el siguiente:
1.-Puedo realizar el pdf pero lo que no se!!!...es como hacerle para que cuando reciba los datos de la BD y el campo tenga un dato largo.....pues q al llegar al margen q le corresponde al campo que estoy mandando a imprimir...pues q me haga un salto de línea.....para q no ocupe el espacio de otros campos de impresion.....EN UNA PAGINA RECIBO LOS VALORES DE LA VARIABLE Y ME LLAMA A LA SIGUIENTE PAG. este es mi código para generar mi pdf


<?php
include("conexion.php");
require('fpdf.php');

class Imprimir{
function reporte($fechaini,$fechafin){
define('FPDF_FONTPATH','./font/');

$link = Conectarse();
$pdf=new PDF('P','mm','letter');
$pdf->AddPage();
$pdf->SetFillColor(224,235,255);
$pdf->SetTextColor(0);
$pdf->SetFont('');
$pdf->Cell(0,5,'XXX',0,0,'C',1);

$PieInforme='EEEE';

$date = new DateTime("$Fecha");
$Fecha = $date->format('d/m/Y');
$pdf->Ln(10);
$fechai=date('d-M-Y',strtotime($fechaini));
$fechaf=date('d-M-Y',strtotime($fechafin));
$pdf->Cell(25,5,'Reporte De: ','LTRB',0,'L',1);
$pdf->Cell(30,5,$fechai,'LTRB',0,'C',1);
$pdf->Cell(7,5,'Al: ','LTRB',0,'L',1);
$pdf->Cell(30,5,$fechaf,'LTRB',0,'C',1);
$posX = $pdf->GetX() + 64;

$pdf->SetX($posX);
$pdf->Cell(14,5,'Fecha: ','LTRB',0,'L',1);
$pdf->Cell(25,5,$Fecha,'LTRB',0,'C',1);
$pdf->Ln(10);

$ssql="SELECT * from tabla WHERE fecha_rep BETWEEN '$fechaini' AND '$fechafin';";

$header=array('Fecha de Rep.','Equipo','Estado','Problemática','Solución') ;
$w=array(30,20,20,70,55);
for($i=0;$i<count($header);$i++)
{
$pdf->Cell($w[$i],7,$header[$i],1,0,'C',1);
}

$pdf->Ln();
$rsReport=mysql_query($ssql,$link);
$fill = 0;
$renglon = 0;
$pdf->SetFont('Arial','',8);
while($fila = mysql_fetch_array($rsReport))
{
$pdf->Cell($w[0],6,$fila[10],'LTRB',0,'C',$fill);
$pdf->Cell($w[1],6,$fila[4],'LTRB',0,'C',$fill);
$pdf->Cell($w[2],6,$fila[21],'LTRB',0,'C',$fill);
$pdf->Cell($w[3],6,$fila[5],'LTRB',0,'C',$fill);
$pdf->Cell($w[4],6,$fila[6],'LTRB',0,'C',$fill);
$pdf->Ln();
$fill=!$fill;
$renglon +=1;
if($renglon > 17)
{
$pdf->AddPage();
$pdf->SetFillColor(224,235,255);
$pdf->SetTextColor(0);
$pdf->SetFont('');
$pdf->Cell(0,5,'REPORTE',0,0,'C',1);
$pdf->Ln(10);
$posX = $pdf->GetX() + 112;
$pdf->SetX($posX);
$pdf->Cell(14,5,'Fecha: ','LTRB',0,'C',1);
$pdf->Cell(25,5,$Fecha,'LTRB',0,'C',1);
$pdf->Ln(10);
for($i=0;$i<count($header);$i++)
$pdf->Cell($w[$i],7,$header[$i],1,0,'C',1);
$pdf->Ln();
$renglon = 0;
}
}
if($renglon < 17)
{
for($i=$renglon;$i<=17;$i++)
{
$pdf->Cell($w[0],6,'','LR',0,'C',$fill);
$pdf->Cell($w[1],6,'','LR',0,'C',$fill);
$pdf->Cell($w[2],6,'','LR',0,'C',$fill);
$pdf->Cell($w[3],6,'','LR',0,'L',$fill);
$pdf->Cell($w[4],6,'','LR',0,'L',$fill);
$pdf->Ln();
$fill=!$fill;
}
}
$pdf->Cell(196,0,'','T');
$pdf->Ln(26);

$pdf->Cell(65,6,$P,'',0,'C',0);
$pdf->SetX($pdf->GetX()+1);
$pdf->Cell(65,6,$PieInforme,'LTR',0,'C',0);
$pdf->SetX($pdf->GetX()+1);
$pdf->Ln();

$pdf->SetFont('Arial','',7);
$pdf->Cell(65,6,$Nom,'',0,'C',0);
$pdf->SetX($pdf->GetX()+1);
$pdf->Cell(65,6,'XXXX','LR',0,'C',0);
$pdf->SetX($pdf->GetX()+1);
$pdf->Ln();
$pdf->Cell(65,6,'','',0,'C',0);
$pdf->SetX($pdf->GetX()+1);
$pdf->Cell(65,6,'','LBR',0,'C',0);
$pdf->Ln();
$pdf->SetFont('Arial','',4);
$pdf->Cell(65,6,$cargo . " " . $Area,'',0,'C',0);
$pdf->SetX($pdf->GetX()+1);
$pdf->Cell(65,6,'TTTT','LBR',0,'C',0);
$pdf->Ln();

$pdf->Output();
}
}
class PDF extends FPDF
{
function Header()
{
$this->SetFont('Arial','',12);
$this->Image('Img/logo_salud.jpg',5,10,20,0,'','');
$this->Cell(0,9,'xxx',0,0,'C');
$this->Ln();
$this->SetX($this->GetX()- 8);
$this->Cell(0,9,'xxx',0,0,'C');
$this->Ln();
$this->SetX($this->GetX()- 8);
$this->Cell(0,9,'xxxx',0,0,'C');
$this->Image('Img/logode.jpg',174,10,30,0,'','');
$this->Ln(15);
}
function Footer()
{
$this->SetY(-15);
$this->SetFont('Arial','I',8);
$this->Cell(0,10,'xxxxxx',0,0,'L');
$this->SetX(200);
$this->Cell(0,10,'Pagina '.$this->PageNo(),0,0,'R');
}
}
?>

Espero y me puedan orientar....saludos

Última edición por ana86; 05/04/2009 a las 13:09 Razón: Para Mejorar la explicación
  #2 (permalink)  
Antiguo 02/04/2009, 14:24
 
Fecha de Ingreso: abril-2009
Mensajes: 21
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cración de PDF en php

mmmm ..... mira no entiendo muy bien lo que preguntas pero creo que lo que preguntas pero supongo que lo que dices es que cuando te pones a hacer el ciclo que te imprime los valores que vienen desde la base de datos no te salta de linea para imprimir el proximo registro en la linea de abajo...supongo que sea eso, en ese caso prueba esto por ejemplo:

supongamos que tengo un recordset "$personas" que traje de la base de datos y que tiene 2 campos "nombre" y "apellidos" y que quieres imprimir los 2 campos formando un reporte en pdf:

foreach ($personas as $persona)
{

$pdf->Cell(24,7,$persona->getNombre(),1,0,'C',1);
$pdf->Cell(24,7,$persona->getApelidos(),1,1,'C',1);

}

ahora fijate en los parametros de Cell()

el integer que esta antes de la "C" que indica que el texto esta centrado en la celda es el cambio de linea:
con un 0 indicas que siga a continuacion y con un 1 le dices que haga una ruptura de linea. fijate que despues que imprimo el 2 campo lo cambio a 1 para saltar a la proxima linea (justo al margen izquierdo del documento claro). el resto de los parametros creo que sabes para que son porque veo que los utilizas en tu codigo. espero que esto te sirva de ayuda

salu2
  #3 (permalink)  
Antiguo 05/04/2009, 12:51
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cración de PDF en php

Hola....disculpa pero creo q no me di a entender!!lo que pasa es q tengo un campo que se llama descripción y ponte q en ese campo guardo "El quipo tiene problemas ya q no enciende...etc" entonces pues es largo y lo q pasa q cuando lo imprimo me lo sobrescribe con datos de otro campo.....entonces no se como limitar ese tipo de campo para que al pasarse del margen pues me haga un salto de linea!!!.....espero y me haya explicado mejor...
saludos y gracias...
simulacion del Ejemplo:
*****************
Descripcion|solución*
hashasasasasasssd*dsdsdsdsds
*****************
Nota: La impresion se pasa del margen!!

Última edición por ana86; 05/04/2009 a las 13:21
  #4 (permalink)  
Antiguo 21/04/2009, 13:33
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cración de PDF en php

Hola amigos del foro!!!....ya encontre la solución de mi problema!!!....
Cuando necesiten imprimir un dato que es rescatado de una BD y quieren que automaticamente les realice un salto de línea al llegar al margen...utilicen MultiCell....si es que utilizan la librería fpdf,ejemplo:$pdf->MultiCell(0,15,'SOLUCIÓN :'.$solu,'LR',1,'L');....espero y les sirva.Cuidense mucho
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 07:37.