Foros del Web » Programando para Internet » PHP »

Problemas con Pdf

Estas en el tema de Problemas con Pdf en el foro de PHP en Foros del Web. Que tal muchachosla situacion es la siguiente necesito generar un reporte en pdf pero no se que esta mal que cada vez que hago una ...
  #1 (permalink)  
Antiguo 18/10/2006, 22:20
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Problemas con Pdf

Que tal muchachosla situacion es la siguiente necesito generar un reporte en pdf pero no se que esta mal que cada vez que hago una consulta por fechas me sale un mensaje en el pdf que dice Files does not begin with '%PDF-'., y no se por que sera solo pasa eso con las fechas y cuando hago un like pieso que son las '' pero como haria para hacer la consulta de caracteres y de fechas sin las '', yo ya lo he hecho antes sin errores pero no tengo el codigo a mano, agradeceria sus ayudas... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #2 (permalink)  
Antiguo 20/10/2006, 11:26
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
que tal muchachos, necesito que me hache una ayuda con eso ninguna sugerencia?... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #3 (permalink)  
Antiguo 20/10/2006, 11:49
Avatar de peperoni  
Fecha de Ingreso: febrero-2005
Mensajes: 24
Antigüedad: 19 años, 2 meses
Puntos: 0
Con que lo estas haciendo?
  #4 (permalink)  
Antiguo 20/10/2006, 15:18
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
que tal, estoy utilizando fpdf, para generar los reportes.Gracias... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #5 (permalink)  
Antiguo 20/10/2006, 21:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. y como lo utilizas .. que código usas?

Por lo menos intenta aportar más antecedentes de tu problema, pues los vas "soltando" poco a poco .. Date el tiempo, sientate, mira que es lo que haces y en que condiciones se produce el problema y lo expones en el foro, bien claro y detallado.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 21/10/2006, 06:29
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Gracias Clustes, el panorama es el siguiente yo tengo un generador de reporte que funciona cuando quiero buscar cualquier dato menos String o Date me dice Files does not begin with '%PDF-'., solo pasa con ese tipo de datos la cosulta es como cualquier sql es un select compuesto de los datos que se quieren buscar osea se genera dinamicamente, la sentencia final funciona en el phpmyadmin y en mysql sin problemas pero en el pdf sale ese error que no me habia pasado antes. Espero su ayuda... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #7 (permalink)  
Antiguo 21/10/2006, 22:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jmqc Ver Mensaje
Gracias Clustes, el panorama es el siguiente yo tengo un generador de reporte que funciona cuando quiero buscar cualquier dato menos String o Date me dice Files does not begin with '%PDF-'., solo pasa con ese tipo de datos la cosulta es como cualquier sql es un select compuesto de los datos que se quieren buscar osea se genera dinamicamente, la sentencia final funciona en el phpmyadmin y en mysql sin problemas pero en el pdf sale ese error que no me habia pasado antes. Espero su ayuda... Saludos
Estamos en las mismas. NI yo ni nadie que te pretenda ayudar vemos es tal "generado de reportes" ni lo podemos probar ni nada ..

Vete a saber que código (en el caso de que sea una aplicación en PHP .. por qué ya tengo mis dudas al respecto ...) genera o como trabaja esas condiciones como para que en ciertos casos genere ese código "PDF" de una forma y en otras no ..

¿Entiendes lo dificil que es intentar dar algún consejo u orientación así .. sin todos los elementos que -tú- si dispones a mano y en condiciones reales de uso?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 23/10/2006, 14:52
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Que tal cluster tienes razon aqui va el codigo:
Código PHP:
<? include "top_admin.php"?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="fuente">
  <tr>
      <td width="20%" valign="top">
      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="fuente">
        <tr>
          <td align="center"><img src="imagenes/logo_minfra.gif"></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="25"><div align="center"><strong>Menu Principal</strong></div></td>
        </tr>
        <tr>
          <td height="25" align="center"><a href="principal.php?tipo_u=<?=$_REQUEST["tipo_u"]?>" class="link1" onMouseOver="quitar_todos()">Principal</a></td>
        </tr>
        <tr>
          <td width="33%" height="25"><div align="center"><a href="#" class="link1" onMouseOver="quitar_todos();mostrar('L_licitacion')">Licitaciones -&gt;</a> </div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="#" class="link1" onMouseOver="quitar_todos(); mostrar('L_orden')">Orden de Pago -&gt;</a></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="#" class="link1" onMouseOver="quitar_todos();mostrar('L_carta')">Carta Orden -&gt;</a></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="#" class="link1" onMouseOver="quitar_todos();mostrar('L_reportes')">Reportes -></a></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="estadisticas_lic.php?tipo_u=<?=$_SESSION["nivel"]?>" class="link1" onMouseOver="quitar_todos()">Estadisticas</a></div></td>
        </tr>
        <tr>
          <td height="25" align="center"><a href="#" class="link1" onMouseOver="quitar_todos();mostrar('L_empresa')">Empresas Registradas</a></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="cambiar.php?tipo_u=<?=$_REQUEST["tipo_u"]?>" class="link1" onMouseOver="quitar_todos()">Cambiar Contrase&ntilde;a</a></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="logout.php" class="link1"  onMouseOver="quitar_todos()">Cerrar Sesi&oacute;n</a></div></td>
        </tr>
        <? if ($_SESSION["nivel"]=="A"){?>
        <tr>
          <td height="25" align="center" class="fuente" style="background-repeat:repeat-x"><div align="center"><strong>Men&uacute; Administraci&oacute;n</strong></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="usuarios.php" class="link1" onMouseOver="quitar_todos()">Usuarios</a></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="ciudades.php" class="link1" onMouseOver="quitar_todos()">Agregar Ciudades/Estados</a></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="rubros.php" class="link1" onMouseOver="quitar_todos()">Agregar Rubros</a></div></td>
        </tr>
        <tr>
          <td height="25"><div align="center"><a href="estatus.php" class="link1" onMouseOver="quitar_todos()">Agregar Estatus</a></div></td>
        </tr>
        <? }?>
      </table></td>
    <td valign="top" align="center">
        <form name="frm_buscar" method="post" action="?generar=true">
            <table width="80%" border="0" cellspacing="2" cellpadding="2" class="fuente">
              <tr>
                <td width="30%">&nbsp;</td>
                <td width="70%">&nbsp;</td>
              </tr>
              <tr>
                <td width="30%">Nº de Licitacion</td>
                <td><input name="nro_lic" type="text"></td>
              </tr>
              <tr>
                <td valign="top">Fecha Desde</td>
                <td>
                    <select name="cmb_dia_d">
                    <option value="">--</option>
                        <? for ($i=1$i<=31$i++) {?>
                            <option value="<?=$i?>"><?=$i?></option>
                        <? }?>
                    </select>
                    / <select name="cmb_mes_d">
                    <option value="">--</option>
                        <? for ($i=1$i<=12$i++) {?>
                            <option value="<?=$i?>"><?=$i?></option>
                        <? }?>
                    </select> 
                    / <select name="cmb_ano_d">
                    <option value="">----</option>
                        <? for ($i=2005$i<=2010$i++) {?>
                            <option value="<?=$i?>"><?=$i?></option>
                        <? }?>
                    </select>
                </td>
              </tr>
              <tr>
                <td valign="top">Fecha Hasta</td>
                <td><select name="cmb_dia_h">\
                    <option value="">--</option>
                        <? for ($i=1$i<=31$i++) {?>
                            <option value="<?=$i?>"><?=$i?></option>
                        <? }?>
                    </select>
                    / <select name="cmb_mes_h">
                        <option value="">--</option>
                        <? for ($i=1$i<=12$i++) {?>
                            <option value="<?=$i?>"><?=$i?></option>
                        <? }?>
                    </select> 
                    / <select name="cmb_ano_h">
                        <option value="">----</option>
                        <? for ($i=2005$i<=2010$i++) {?>
                            <option value="<?=$i?>"><?=$i?></option>
                        <? }?>
                    </select>
                </td>
              </tr>              
              <tr>
                <td>Estado/Región</td>
                <td>
                    <select name="estados">
                        <option value="">Seleccione Uno</option>
                    <? $sqlmysql_query("select * from estados order by estado");
                    while (
$estados=mysql_fetch_array($sql))
                    {
                    
?>
                        <option value="<? print $estados["n_estado"]?>"><? print $estados["estado"]?></option>
                    <? }?>
                    </select>
                </td>
              </tr>
              <tr>
                <td>Rubro</td>
                <td><select name="rubro">
                        <option value="">Seleccione Uno</option>
                    <? $sqlmysql_query("select * from rubros Order By rubro");
                    while (
$rubro=mysql_fetch_array($sql))
                    {
                    
?>
                        <option value="<? print $rubro["n_rubro"]?>"><? print $rubro["rubro"]?></option>
                    <? }?>
                    </select></td>
              </tr>
              <tr>
                <td>Descripción u Obra</td>
                <td>
                    <select name="descripcion">
                        <option value="">Seleccione Una</option>
                    <? $sqlmysql_query("select * from licitacion Order By objetivo");
                    while (
$licitacion=mysql_fetch_array($sql))
                    {
                    
?>
                        <option value="<? print $licitacion["n_licitacion"]?>"><? print $licitacion["objetivo"]?></option>
                    <? }?>
                    </select>
                </td>
              </tr>
              <tr>
                <td>Estatus</td>
                <td>
                    <select name="estatus" id="estatus">
                        <option value="">Seleccione Uno</option>
                    <? $sqlmysql_query("select * from estatus");
                    while (
$estatus=mysql_fetch_array($sql))
                    {
                    
?>
                        <option value="<? print $estatus["n_estatus"]?>"><? print $estatus["estatus"]?></option>
                    <? }?>
                    </select>
                </td>
              </tr>
              <tr>
                <td colspan="2">Mostrar Todo 
                <input name="chk_todo" type="checkbox" id="chk_todo" value="checkbox"></td>
              </tr>
              <tr>
                  <td><input name="boton_buscar" type="submit" value="Generar"></td>
                <td><input name="salir" type="button" value="Cancelar" onClick="history.back();"></td>
              </tr>
          </table>
        </form>
        <br>
        <?
        
if ($_REQUEST["generar"]=="true")
        {
            
$buscado='';
            
            
$vnro_lic$_POST["nro_lic"];
            if (
$_POST["cmb_dia_d"]!="" && $_POST["cmb_mes_d"]!="" && $_POST["cmb_ano_d"]!=""){
                
$vh_fec_desde$_POST["cmb_ano_d"]."-".$_POST["cmb_mes_d"]."-".$_POST["cmb_dia_d"];
            }
            if (
$_POST["cmb_dia_h"]!="" && $_POST["cmb_mes_h"]!="" && $_POST["cmb_ano_h"]!=""){
                
$vh_fec_hasta$_POST["cmb_ano_h"]."-".$_POST["cmb_mes_h"]."-".$_POST["cmb_dia_h"];
            }
            
$vestados=$_POST["estados"];
            
$vestatus=$_POST["estatus"];
            
$vdescripcion=$_POST["descripcion"];
            
$vrubro=$_POST["rubro"];
            
            if (
$vnro_lic!="") { $buscar =" n_licitacion=$vnro_lic"$buscado' Nro Licitacion';}
            
            if (
$vh_fec_desde!="") { 
            if (
$buscar =="") { $buscar =" a.fecha_ini between '@$vh_fec_desde@' and '@$vh_fec_hasta@'"$buscado' Fecha'; } else { $buscar .=" and a.fecha_ini between '@$vh_fec_desde@' and '@$vh_fec_hasta@'";$buscado.= ', Fecha'; }
            }
            
            if (
$vestatus!="") { 
            if (
$buscar =="") { $buscar =" a.n_estatus=$vestatus"$buscado' Estatus'; } else { $buscar .=" and a.n_estatus=$vestatus"$buscado.= ', Estatus'; }
            }
            
            if (
$vrubro!="") { 
            if (
$buscar =="") { $buscar =" a.n_rubro ='$vrubro'"$buscado' Rubro';} else { $buscar .=" and a.n_rubro ='$vrubro'"$buscado.= ', Rubro';}
            }
            
            if (
$vdescripcion!="") { 
            if (
$buscar =="") { $buscar =" a.n_licitacion= $vdescripcion"$buscado' Descripcion u Obra'; } else { $buscar .=" and a.n_licitacion=$vdescripcion";$buscado.= ', Descripcion u Obra'; }
            }
            
            if (
$vh_fec_desde<=$vh_fec_hasta)
            {
                if (
$buscar !="") { $buscar" AND ".$buscar; }
                
                if (
$_REQUEST["orden"]=="") { $orden="fecha_ini"; } else { $orden=$_REQUEST["orden"]; }
                if (
$_REQUEST["torden"]=="" || $_REQUEST["torden"]=="Desc") { $torden="Asc"; } 
                if (
$_REQUEST["torden"]=="" || $_REQUEST["torden"]=="Asc") { $torden="Desc"; } 
                if (
$_REQUEST["torden"]!="") { $torden$_REQUEST["torden"]; }
    
                
$sql"select a.n_licitacion, a.objetivo, a.fecha_ini, a.monto, b.estatus, c.estado, d.razon_social, e.rubro from licitacion a, estatus b, estados c, empresas d, rubros e where a.n_estatus=b.n_estatus and a.n_estado=c.n_estado and d.n_empresa= a.n_empresa and e.n_rubro=a.n_rubro ".$buscar." order by n_licitacion";
            }
            else
            {
                print 
"<font color='#ff0000'><b>La Fecha Hasta debe ser mayor que la fecha Desde. Revise los Datos.</b></font>";
                die();
            }
            if (
$sql!="")
            {
                if (
$buscado!="") {$buscado "Reporte de Licitaciones por ".$buscado ; } else { $buscado "Reporte de Licitaciones"; }
                echo 
"<script>reportes=window.open(\"reportes.php?titulo=".$buscado."&sql=$sql\", 'reportes', 'toolbar=YES,scrollbars=YES,location=0,statusbar=YES,menubar=YES,resizable=YES');</script>";
            }
        }
        
?>
    </td>
  </tr>
</table>    
<? include "foot.php";?>
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:

Última edición por jmqc; 23/10/2006 a las 14:57
  #9 (permalink)  
Antiguo 23/10/2006, 14:58
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Cluster el código era muy largo aqui esta la segunad parte, , eso como pueden ver va a un popup que se llama reportes, este es el código de la pagina que genera el reporte
Código PHP:
<?php
include "conectar.php"?>
<?
$sql
=stripslashes($_REQUEST["sql"]);

$buscar_sql=mysql_query($sql);
if (
mysql_affected_rows()!=0)
{    
    require(
'fpdf.php');
    class 
PDF extends FPDF
    
{
    function 
Header()
    {
        
$this->Image('imagenes/logo.jpg',10,8,33);
        
$this->SetFont('Arial','B',15);
        
$this->Ln(10);
        
$this->Cell(177,10,'DIRECCION GENERAL SECTORIAL DE ADMINISTRACION SERVICIOS',0,0,'C');
        
$this->Ln(5);
        
$this->Cell(105,10,'DIVISION DE LICITACION Y CONTRATOS',0,0,'C');
        
$this->Cell(80);
        
$this->Ln(10);
        
$this->Cell(0,10,$_REQUEST["titulo"],0,0,'C');
        
$this->Ln(10);
    }
    
    function 
Footer()
    {
        
$this->SetY(-15);
        
$this->SetFont('Arial','I',8);
        
$this->Cell(0,10,'P&aacute;gina '.$this->PageNo().'/{nb}',0,0,'C');
    }
    }

    
$pdf=new PDF('L');
    
$pdf->AliasNbPages();
    
$pdf->AddPage();
    
$pdf->SetFont('Times','B',12);
    
    
$pdf->Cell(25,10,'Rif o CI',1,0'C');
    
$pdf->Cell(25,10,'N. O. Pago',1,0'C');
    
$pdf->Cell(30,10,'Monto',1,0'C');
    
$pdf->Cell(60,10,'Beneficiario',1,0'C');
    
$pdf->Cell(60,10,'Concepto',1,0'C');
    
$pdf->Cell(25,10,'Fecha',1,0'C');
    
$pdf->Cell(60,10,'Ubicacion',1,1'C');
    while (list(
$n_carta$n_licitacion$fecha$monto$empresa$rif_ci$objetivo$ubicacion) = mysql_fetch_row($buscar_sql))
    {
        if (
$color=="" || $color=="255,255,255") { $color"229,229,229"; } else { $color"255,255,255" ;}
        
$pdf->SetFillColor($color);
        
$pdf->SetFont('Times','',12);
        
$pdf->Cell(25,10$rif_ci1,0'C'1);
        
$pdf->Cell(25,10$n_carta1,0'C'1);
        
$pdf->Cell(30,10$monto1,0'C'1);
        
$pdf->Cell(60,10$empresa ,1,0'C'1);
        
$pdf->Cell(60,10$objetivo ,1,0'C'1);
        
$pdf->Cell(25,10$fecha1,0'C'1);
        
$pdf->Cell(60,10$objetivo ,1,1'C'1);
    }
    
$pdf->Output();
}
else
{
    echo 
'<script>alert("La busqueda no genero resultados.\nIntente de nuevo"); window.close();</script>';
}
?>
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #10 (permalink)  
Antiguo 23/10/2006, 15:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y donde se genera el documento PDF? ...

Será en reportese.php ..

Cita:
reportes.php?titulo=".$buscado."&sql=$sql
No me digas que le pasas la sentencia SQL y/o "resource ID" (sale de: $sql= mysql_query("select * from estatus");).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 23/10/2006, 15:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok .. ahora lo ví ..

Bien . .NO ES CORRECTO y -altamente- peligroso que tu andes pasando una sentencia SQL !!!!! por el URL!!!!! como lo haces!!!!. Y si te cambio el URL y te pongo un "TRUNCATE nombre_tabla"?

DEBES pasar parámetros que compongan tu sentencia SQL no la sentencia SQL en sí .. eso es Extremadamente peligroso!.

Pasale a tu script "reportes.php" los mismos parámetros que le pasas el código principal para ejecutar el mismo código (create funciones y así no repites código tanto ...) .. esos: "torden", fechas y demás parámetros que usas.

El problema que tienes ahora es que como pasas por el URL una cadena con espacios, caracteres como .. comillas .. puntos .. etc .. NO las codificas en el URL .. por eso llegan como llegan a tu script de proceso (le haces un echo a $sql en reportes.php para ver que recibes o que sentencia SQL real vas a ejecutar?). En esos casos se debe codificar el URL (url_encode()) .. y al otro lado lo contrario url_decode() ...

Pero .. insisto que esta no es la solución .. NO LO HAGAS por tu bien!.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 23/10/2006, 15:58
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
ok cluster creo que entiendo, me creo una funcion con parametros que llamo desde reportes_lic, dejame a probar y te aviso!... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
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 05:32.