Hola a todos, bueno hace tiempo tuve un problema al generar un PDF y gracias a Dios se pudo resolver... era un problema que tenía con al hacer referencia a las fuentes del fpdf, ya que me generaba el pdf pero sin ningun formato y la tabla donde iban los datos de mi consulta aparecía vacía... total me pasaron una carpeta con las fuentes (fonts) la puse en el proyecto y jalo, este fue el codigo que me funciono...
Código PHP:
Ver original<?php
//require('class.pdf.php');
require_once('class.ezpdf.php'); //conexion en la libreria para crear documentos pdf
//require('class.pdf.php');
require("Conexion.php"); //conexion a la base de datos
$pdf = new Cezpdf('LETTER','landscape');
$pdf->selectFont('../fonts/Helvetica.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);
$pdf->ezSetMargins(40,45,30,30);
$pdf->ezStartPageNumbers(750,25,12,'','{PAGENUM} de {TOTALPAGENUM}',1);
$resultado=mysql_query("SELECT RPEREGASIS, FECREGASIS, MIN( HORREGASIS ) AS entrada, MAX( HORREGASIS ) as salida FROM registro GROUP BY RPEREGASIS, FECREGASIS LIMIT 1,10");
//aqui empieza a revisar los datos q hay en la tabla
$ixx = 0;
$ixx = $ixx+1;
}
//dar el titulo a los encabezados de las columnas
'id'=>'<b>Id</b>',
'RPEREGASIS'=>'<b>RPE del Empleado</b>',
'FECREGASIS'=>'<b>Fecha</b>',
'entrada'=>'<b>Hora de Entrada</b>',
'salida'=>'<b>Hora de Salida</b>'
);
//opciones de la tabla en el pdf
'shadeCol'=>array(0.9,0.9,0.9), 'xOrientation'=>'center',
'fontSize'=>8,
'width'=>700,
'colGap'=>2,
'xPos'=>'centre',
);
$pdf->addJpegFromFile('ros.jpg',650,540,100);
$txttit = "<b>Reporte</b>\n";
$txttit.= "Solicitudes de zona \n";
//datos que se agregan a la tabla al final de las paginas, fecha y hora
$pdf->ezText($txttit, 12);
$pdf->ezText($data, 12);
$pdf->ezTable($data, $titles, '', $options);
$pdf->ezText("\n\n\n", 10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10); $pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n", 10); $pdf->ezStream();
?>
Intenté hacer lo mismo metiendo datos desde un formulario y si funciona, lo intente solo pasando un parametro que era el numero de identificacion de un trabajador y si me lo genero el pdf...
Ahora lo incluí el datepicker y una función para pasar el formato de fecha del mismo al formato en que se guardan las fechas en mysql, y bueno la pagina me arroja un mensaje diciendo que "Se ha producido un error al cargar el PDF" y se me hace extraño ya que la consulta si funciona bien mostrandola en la pagina pero a la hora de generar el pdf me arroja ese mensaje de error :s... aqui les dejo el codigo, espero y como siempre me puedan ayudar =)...
Código PHP:
Ver original<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="FormPagina.css" />
<title></title>
<link type="text/css" href="css/sunny/jquery-ui-1.8.13.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript">
$(function() {
$( ".datepicker" ).datepicker();
});
</script>
<body>
<h1>CFE</h1>
<form id="form" name="form" action="TrabaFecha2.php" method="post">
RPE del Trabajador:
<input type="text" name="RPEREGASIS">
<br>
Fecha Inicio:
<input type="text" name="fechaIni" class="datepicker">
<br>
Fecha Final:
<input type="text" name="fechaFin" class="datepicker">
<br>
<input type="submit" value="Consultar">
</form>
<?php
function js2PhpTime($jsdate){
if(preg_match('@(\d+)/(\d+)/(\d+)\s+(\d+):(\d+)@', $jsdate, $matches)==1) {
$ret = mktime($matches[4], $matches[5], 0, $matches[1], $matches[2], $matches[3]); }else if(preg_match('@(\d+)/(\d+)/(\d+)@', $jsdate, $matches)==1){ $ret = mktime(0, 0, 0, $matches[1], $matches[2], $matches[3]); }
return $ret;
}
$trabajador=$_POST['RPEREGASIS'];
$fechaIni=$_POST['fechaIni'];
$fechaFin=$_POST['fechaFin'];
$Inicio=date("Y-m-d", js2PhpTime
($fechaIni)); $Final=date("Y-m-d", js2PhpTime
($fechaFin)); if($conectar==NULL)
{
printf("Error al conectar a la Base de datos"); }
require_once('class.ezpdf.php');
$pdf = new Cezpdf('LETTER','landscape');
$pdf->selectFont('../fonts/Helvetica.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);
$pdf->ezSetMargins(40,45,30,30);
$pdf->ezStartPageNumbers(750,25,12,'','{PAGENUM} de {TOTALPAGENUM}',1);
$resultado=mysql_query("SELECT RPEREGASIS, FECREGASIS, MIN(HORREGASIS) AS entrada, MAX(HORREGASIS) as salida FROM registro WHERE RPEREGASIS='$trabajador' AND FECREGASIS BETWEEN '$Inicio' AND '$Final' GROUP BY RPEREGASIS, FECREGASIS");
//aqui empieza a revisar los datos q hay en la tabla
$ixx = 0;
$ixx = $ixx+1;
}
//dar el titulo a los encabezados de las columnas
'id'=>'<b>Id</b>',
'RPEREGASIS'=>'<b>RPE del Empleado</b>',
'FECREGASIS'=>'<b>Fecha</b>',
'entrada'=>'<b>Hora de Entrada</b>',
'salida'=>'<b>Hora de Salida</b>'
);
//opciones de la tabla en el pdf
'shadeCol'=>array(0.9,0.9,0.9), 'xOrientation'=>'center',
'fontSize'=>8,
'width'=>700,
'colGap'=>2,
'xPos'=>'centre',
);
$pdf->addJpegFromFile('ros.jpg',650,540,100);
$txttit = "<b>Reporte</b>\n";
$txttit.= "Solicitudes de zona \n";
//datos que se agregan a la tabla al final de las paginas, fecha y hora
$pdf->ezText($txttit, 12);
$pdf->ezText($data, 12);
$pdf->ezTable($data, $titles, '', $options);
$pdf->ezText("\n\n\n", 10);
$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10); $pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n", 10); $pdf->ezStream();
?>
</body>
</html>