Foros del Web » Programando para Internet » PHP »

problemas HTML2PDF

Estas en el tema de problemas HTML2PDF en el foro de PHP en Foros del Web. Hola chicos, no he utilizado nunca esta 'herramienta' por llamarlo de alguna manera, pero necesito con urgencia imprimir unos PDF's de unos reportes. Necesito introducir ...
  #1 (permalink)  
Antiguo 05/06/2012, 16:27
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
problemas HTML2PDF

Hola chicos, no he utilizado nunca esta 'herramienta' por llamarlo de alguna manera, pero necesito con urgencia imprimir unos PDF's de unos reportes.

Necesito introducir html, y resultados de consultas SQL.

Todos los ejemplos que he visto lo hacen añandiendo texto que ya tienen en plan simple, pero no tengo ni idea de como meter el resultado de las sentencias y los bucles.


Bueno en cuestión, tengo que imprimir el resultado de este archivo PHP.

Código PHP:
Ver original
  1. <?php
  2.  include('conex.php');
  3.  
  4.     // SELECCIONAMOS EL ÁMBITO.
  5.     $ambitos = ("SELECT ambitos.codAmbito, ambitos.descripAmbito FROM ambitos ORDER BY codAmbito");
  6.     $resuambitos = mysql_query($ambitos);
  7.  
  8.  
  9.    
  10.     // MIENTRAS HAYA ÁMBITO IMPRIME.
  11. while($datos = mysql_fetch_assoc($resuambitos)) {
  12.  
  13.     echo "<table border=\"1\"><tr><td> Datos Encuesta Ambito ".$datos['descripAmbito']."  </td> <td> Medias Totales Ambito ".$datos['descripAmbito']."   </td></tr><tr><td>";
  14.     // IMPRIMIMOS EL TÍTULO Y ABRIMOS LA TABLA.
  15.     echo "<b>Ambito: </b>".$datos['descripAmbito'];
  16.     echo "<table border=\"1\"><tr><td><b>Centro</b></td><td><b>Numero Pregunta</b></td><td><b>Evaluador1</b></td><td><b>Evaluador2</b></td><td><b>Evaluador3</b></td><td><b>opinPos</b></td><td><b>opinNeg</b></td><td><b>Media</b></td><td><b>Ponderacion</b></td></tr>";
  17.    
  18.     // SELECIONAMOS TODOS LOS DATOS DE ENCUESTAS CUANDO TENGAN ESE CÓDIGO DE AMBITO.
  19.     $encuestas = ("SELECT descripAmbito, descripCentro, encuestas.codAmbito, encuestas.codCentro, numeroPregunta, evaluador1, evaluador2, evaluador3, opinPos, opinNeg, media
  20.     FROM ambitos, centros, encuestas
  21.     WHERE ambitos.codAmbito = '".$datos['codAmbito']."'
  22.     AND ambitos.codAmbito = encuestas.codAmbito
  23.     AND centros.codCentro = encuestas.codCentro
  24.     ORDER BY encuestas.numeroPregunta");
  25.     $resuencuestas = mysql_query($encuestas);
  26.        
  27.         // MIENTRAS  HAYA RESULTADOS IMPRIME.
  28.         while($datos2 = mysql_fetch_assoc($resuencuestas)) {
  29.                    
  30.             // SELECIONAMOS LOS PORCENTAJES PARA CALCULAR LA PONDERACIÓN.
  31.             $porcentajes = ("SELECT porcentaje FROM ponderaciones WHERE codCentro = '".$datos2['codCentro']."'");
  32.             $resuporcentajes = mysql_query($porcentajes);
  33.             while($datos3 = mysql_fetch_assoc($resuporcentajes)){
  34.                 $ponderacion = round($datos2['media'] * $datos3['porcentaje']);
  35.             }
  36.                    
  37.  
  38.         // RELLENAMOS LA TABLA CON LOS DATOS.
  39.         echo "<tr>";
  40.         echo "<td>".$datos2['descripCentro']." </td>";
  41.         echo "<td>".$datos2['numeroPregunta']." </td>";
  42.         echo "<td>".$datos2['evaluador1']." </td>";
  43.         echo "<td>".$datos2['evaluador2']." </td>";
  44.         echo "<td>".$datos2['evaluador3']." </td>";
  45.         echo "<td>".$datos2['opinPos']." </td>";
  46.         echo "<td>".$datos2['opinNeg']." </td>";
  47.         echo "<td>".$datos2['media']."</td>";
  48.         echo "<td>".$ponderacion."</td>";
  49.         echo "</tr>";
  50.        
  51.  
  52.    
  53.    
  54.             // CONTAMOS EL NÚMERO DE REGISTROS PARA DIVIDIR.
  55.             $sql4 = ("SELECT COUNT(*) FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  56.             $resultados4 = mysql_query($sql4);
  57.             while($datos4 = mysql_fetch_array($resultados4)){
  58.                 $cuenta = $datos4[0];
  59.             }
  60.            
  61.             // SELECIONAMOS Y SUMAMOS LA MEDIA CUANDO SEA ESE NUMERO DE PREGUNTA EN ESE AMBITO.
  62.             $sql5 = ("SELECT SUM(media) as media FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  63.             $resultados5 = mysql_query($sql5);
  64.             while($datos5 = mysql_fetch_array($resultados5)){
  65.                     $mediatotal = $datos5[0]/$cuenta;
  66.                    
  67.                    
  68.             }
  69.  
  70.         $mt = array($datos2['numeroPregunta'] => $mediatotal);
  71.         }
  72.  
  73.         // CERRAMOS LA TABLA.
  74.         echo "</table>";
  75.         echo "<br>";
  76.        
  77. // IMPRIMIMOS LAS MEDIAS TOTALES.
  78. echo "</td><td>";
  79. echo "<table border=\"1\">";
  80. echo "<tr><td>Numero Pregunta </td><td>Media Total</td></tr>";
  81. foreach ($mt as $clave => $valor){
  82. echo "<tr><td>".$clave."</td><td>".$valor."</td></tr>";
  83. }
  84. echo "</table>";
  85. echo "</td>";
  86. echo "</tr><tr><td colspan=\"2\">Imprimir</td></tr></table>";
  87. echo "<br>";
  88. }
  89.  
  90. ?>


Espero que me podais echar una manilla para orientarme con un par de ejemplos aunque sea para ver la manera de meter el resultado de las consultas y los bucles y demas...


Un saludo y muchísimas gracias compañeros.
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #2 (permalink)  
Antiguo 05/06/2012, 18:34
Avatar de mft
mft
 
Fecha de Ingreso: abril-2003
Ubicación: *
Mensajes: 239
Antigüedad: 21 años, 7 meses
Puntos: 4
Información Respuesta: problemas HTML2PDF

Hola!!

Yo utilizo una librería que es jlpdf, te paso la liga para descargarlo y este es un ejemplo para que te des una idea de como puedas hacerlo, si se puede un html, incluyendo consultas generadas en mysql.

Aquí el enlace para descargar la librería. http://elticus.com/jlpdf/

Espero te sea de ayuda.

Código PHP:
<?
    define
('FPDF_FONTPATH','font/');
    require(
'jlpdf.php');

$cadena=
"Título original: [b][BIG]The Da Vinci Code[normal][/b]
Editor original: [i]Doubleday, a división of Random House, Inc., Nueva York [/i]
Traducción: [i][u]Juanjo Estrella [/u][/i]

Reservados todos los derechos. Queda [red]rigurosamente prohibida[black], sin la autorización escrita de los titulares del copyright, bajo las sanciones establecidas en las leyes, la [b]reproducción parcial o total[/b] de esta obra por cualquier medio o procedimiento, incluidos la reprografía y el tratamiento informático, así como la distribución de ejemplares mediante alquiler o préstamo público.

[smallS]Copyright © 2003 by Dan Brown © de la traducción, 2003 by Juanjo Estrella © 2003 by Ediciones Urano, S.A.
Aribau, 142, pral. 08036 Barcelona [normal]

ISBN: [b]84-95618-60-5[/b] Depósito legal: [green]39.978 2003[black] Fotocomposición: [BIG]Ediciones Urano, S.A.[normal] Impreso por Romanyá Valls, S.A. Verdaguer, 1 08760 Capellades (Barcelona), con papel Supersnowbright, fabricado por AS Borregaard Hellefos y comercializado por [BIG]Secopa, S.L.[normal] [u]Impreso en España[/u] Printed in Spain. [normal]

[small][i]Este texto fue hecho utilizando las [times]librerías de la biblioteca[arial] FPDF y con la [b]Clase para Justificar Texto Enriquecido[/b] [i](Justifing Rich Text Class)[/i] desarrollada por JL y distribuida en forma gratuita a través de [blue][u]http://www.elticus.com[/u][black]. (Vistia [b]El Ticus[/b] y descarga otras funciones para PDF igualmente útiles) [/i][normal]
"
;

$pdf=new JLPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',12);

$pdf->SetX(0);
$pdf->SetY(10);
$pdf->JLCell("$cadena",180,'j');
$pdf->Output();
__________________
Lo que haces, determina lo que eres.
Saludos!
  #3 (permalink)  
Antiguo 06/06/2012, 00:26
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: problemas HTML2PDF

Hola mft y gracias por la recomendación, pero lo que yo pido es un ejemplo de como introducir una consulta o los resultados de esta, y un bucle.. que no lo encuentro por ningun lado.

Cadenas de texto, o páginas html sencillas, como el ejemplo que me has puesto tu.. ya he visto miles, pero necesito lo otro..
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #4 (permalink)  
Antiguo 06/06/2012, 02:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 24
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problemas HTML2PDF

Usa php para imprimir el bucle tal cual lo estuvieras haciendo para mostrarlo como salida al usuario, el HTML2PDF lee el html final (ya interpretado).
  #5 (permalink)  
Antiguo 06/06/2012, 03:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 19 años, 2 meses
Puntos: 84
Respuesta: problemas HTML2PDF

Vale, mas o menos seria asi.

Al principio de tu codigo en PHP, pones esto:

Código PHP:
ob_start() ; 
Cuando acabas con todo el PHP, pones esto

Código PHP:
$codigoHTML ob_get_contents() ;
ob_end_clean() ; 
Y ahora, solo te queda pasarle la variable $codigoHTML ( que es la que tiene todo el codigo html comos su propio nombre indica ) al html2pdf.
__________________
» Presupuesto Pagina Web
  #6 (permalink)  
Antiguo 06/06/2012, 03:41
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: problemas HTML2PDF

Lo he echo como comentaba el compi miSko que lo he encontrado también en una página por ahí después de dar 10 millones de vueltas xD

el código me queda así:
Código PHP:
Ver original
  1. <?
  2. require_once('html2fpdf.php');
  3.  include('conex.php');
  4.  
  5. // activate Output-Buffer:
  6. echo "<script type=\"text/javascript\" src=\"style.css\"></script>";
  7.  
  8.  
  9.     $amb = $_GET["ambito"];
  10.  
  11.     // SELECCIONAMOS EL ÁMBITO.
  12.     $ambitos = ("SELECT ambitos.codAmbito, ambitos.descripAmbito FROM ambitos WHERE codAmbito = '$amb' ORDER BY codAmbito");
  13.     $resuambitos = mysql_query($ambitos);
  14.  
  15.    
  16.     // MIENTRAS HAYA ÁMBITO IMPRIME.
  17. while($datos = mysql_fetch_assoc($resuambitos)) {
  18.  
  19.     $mt = array();
  20.  
  21.     echo "<b>Datos Encuesta.<br>  Ambito: </b>  ".$datos['descripAmbito']."";
  22.     // IMPRIMIMOS EL TÍTULO Y ABRIMOS LA TABLA.
  23.     echo "<br>";
  24.     echo "<table border=\"1\" class=\"encuestas\"><tr><td><b>Centro</b></td><td><b>Numero Pregunta</b></td><td><b>Eval1</b></td><td><b>Eval2</b></td><td><b>Eval3</b></td><td><b>Media</b></td><td><b>Ponderacion</b></td></tr>";
  25.    
  26.     // SELECIONAMOS TODOS LOS DATOS DE ENCUESTAS CUANDO TENGAN ESE CÓDIGO DE AMBITO.
  27.     $encuestas = ("SELECT descripAmbito, descripCentro, encuestas.codAmbito, encuestas.codCentro, numeroPregunta, evaluador1, evaluador2, evaluador3, opinPos, opinNeg, media, ponderacion
  28.     FROM ambitos, centros, encuestas
  29.     WHERE ambitos.codAmbito = '".$datos['codAmbito']."'
  30.     AND ambitos.codAmbito = encuestas.codAmbito
  31.     AND centros.codCentro = encuestas.codCentro
  32.     ORDER BY encuestas.numeroPregunta");
  33.     $resuencuestas = mysql_query($encuestas);
  34.        
  35.         // MIENTRAS  HAYA RESULTADOS IMPRIME.
  36.         while($datos2 = mysql_fetch_assoc($resuencuestas)) {
  37.                    
  38.  
  39.         $media = round($datos2['media'],2);
  40.         $ponderacion = round($datos2['ponderacion'],2);
  41.                    
  42.         // RELLENAMOS LA TABLA CON LOS DATOS.
  43.         echo "<tr>";
  44.         echo "<td align=\"left\">".$datos2['descripCentro']." </td>";
  45.         echo "<td align=\"center\">".$datos2['numeroPregunta']." </td>";
  46.         echo "<td align=\"center\">".$datos2['evaluador1']." </td>";
  47.         echo "<td align=\"center\">".$datos2['evaluador2']." </td>";
  48.         echo "<td align=\"center\">".$datos2['evaluador3']." </td>";
  49.         echo "<td align=\"center\">".$media."</td>";
  50.         echo "<td align=\"center\">".$ponderacion."</td>";
  51.         echo "</tr>";
  52.        
  53.  
  54.    
  55.    
  56.             // CONTAMOS EL NÚMERO DE REGISTROS PARA DIVIDIR.
  57.             $sql4 = ("SELECT COUNT(*) FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  58.             $resultados4 = mysql_query($sql4);
  59.             while($datos4 = mysql_fetch_array($resultados4)){
  60.                 $cuenta = $datos4[0];
  61.             }
  62.            
  63.             // SELECIONAMOS Y SUMAMOS LA MEDIA CUANDO SEA ESE NUMERO DE PREGUNTA EN ESE AMBITO.
  64.             $sql5 = ("SELECT SUM(ponderacion) as resultado FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  65.             $resultados5 = mysql_query($sql5);
  66.             while($datos5 = mysql_fetch_array($resultados5)){
  67.                     $mediatotal = round($datos5[0],2);
  68.                    
  69.                    
  70.             }
  71.  
  72.         $mt [$datos2['numeroPregunta']]= $mediatotal;  
  73.         }
  74.  
  75.         // CERRAMOS LA TABLA.
  76.         echo "</table>";
  77.         echo "<br>";
  78.        
  79.         // IMPRIMIMOS LAS MEDIAS TOTALES.
  80.         echo "<b>Medias Totales. <br>Ambito: </b> ".$datos['descripAmbito']."";
  81.         echo "<table border=\"1\" class=\"encuestas\">";
  82.         echo "<br>";
  83.         echo "<tr><td><b>Numero Pregunta </b></td><td><b>Resultado</b></td></tr>";
  84.         foreach ($mt as $numpre => $mediattl){
  85.         echo "<tr><td>".$numpre."</td><td>".$mediattl."</td></tr>";
  86.         }
  87.         echo "</table>";
  88.  
  89.  
  90. }
  91.  
  92. // Output-Buffer in variable:
  93. $html=ob_get_contents();
  94. // delete Output-Buffer
  95. $pdf = new HTML2FPDF();
  96. $pdf->DisplayPreferences('HideWindowUI');
  97. $pdf->AddPage();
  98. $pdf->UseCSS($opt==true);
  99. $pdf->WriteHTML($html);
  100. $pdf->ReadCSS($html);
  101. $pdf->Output('reporte_encuesta.pdf','D');
  102. ?>



La cosa es que trabajando sobre XAMPP en localhost, me genera el PDF perfectamente.

Ahora he subido el trabajo a un servidor web (fedora) con un LAMPP instalado, y me genera el PDF y me lo descarga, pero al abrirlo
me da el error:

__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #7 (permalink)  
Antiguo 06/06/2012, 03:59
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 19 años, 2 meses
Puntos: 84
Respuesta: problemas HTML2PDF

Prueba primero en el servidor lampp a que te muestre el informe sin necesidad de hacerlo en PDF, es decir, que muestre el resultado en HTML, por si tuvieras algun error o algo.

Si no te da error, prueba a leerte la documentacion de la libreria html2pdf , la parte del writehtml a ver si hay algo que no acepta, aunque es raro que te funcione en un sitio y en otro no.

Tambien veo, aunque no viene al caso, que cargas el css asi :

echo "<script type=\"text/javascript\" src=\"style.css\"></script>";

por que? xD

los css van con

<link rel=stylesheet href="style.css" type="text/css">
__________________
» Presupuesto Pagina Web
  #8 (permalink)  
Antiguo 06/06/2012, 05:51
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: problemas HTML2PDF

@miSko añadí el css así porque no se en que página leí que así conseguías cargarlo para el PDF, pero la verdad es que no hay manera de cargarlo XD ni así ni de ninguna manera.

He probado así:

Código PHP:
Ver original
  1. <?
  2. require_once('html2fpdf.php');
  3.  include('conex.php');
  4.  
  5. // activate Output-Buffer:
  6. //header("Content-Type:application/pdf");
  7. echo "<script type=\"text/javascript\" src=\"../style.css\"></script>";
  8.  
  9.  
  10.     $amb = $_GET["ambito"];
  11.  
  12.     // SELECCIONAMOS EL ÁMBITO.
  13.     $ambitos = ("SELECT ambitos.codAmbito, ambitos.descripAmbito FROM ambitos WHERE codAmbito = '$amb' ORDER BY codAmbito");
  14.     $resuambitos = mysql_query($ambitos);
  15.  
  16.    
  17.     // MIENTRAS HAYA ÁMBITO IMPRIME.
  18. while($datos = mysql_fetch_assoc($resuambitos)) {
  19.  
  20.     $mt = array();
  21.  
  22.     echo "<b>Datos Encuesta.<br>  Ambito: </b>  ".$datos['descripAmbito']."";
  23.     // IMPRIMIMOS EL TÍTULO Y ABRIMOS LA TABLA.
  24.     echo "<br>";
  25.     echo "<table border=\"1\" class=\"encuestas\"><tr><td><b>Centro</b></td><td><b>Numero Pregunta</b></td><td><b>Eval1</b></td><td><b>Eval2</b></td><td><b>Eval3</b></td><td><b>Media</b></td><td><b>Ponderacion</b></td></tr>";
  26.    
  27.     // SELECIONAMOS TODOS LOS DATOS DE ENCUESTAS CUANDO TENGAN ESE CÓDIGO DE AMBITO.
  28.     $encuestas = ("SELECT descripAmbito, descripCentro, encuestas.codAmbito, encuestas.codCentro, numeroPregunta, evaluador1, evaluador2, evaluador3, opinPos, opinNeg, media, ponderacion
  29.     FROM ambitos, centros, encuestas
  30.     WHERE ambitos.codAmbito = '".$datos['codAmbito']."'
  31.     AND ambitos.codAmbito = encuestas.codAmbito
  32.     AND centros.codCentro = encuestas.codCentro
  33.     ORDER BY encuestas.numeroPregunta");
  34.     $resuencuestas = mysql_query($encuestas);
  35.        
  36.         // MIENTRAS  HAYA RESULTADOS IMPRIME.
  37.         while($datos2 = mysql_fetch_assoc($resuencuestas)) {
  38.                    
  39.  
  40.         $media = round($datos2['media'],2);
  41.         $ponderacion = round($datos2['ponderacion'],2);
  42.                    
  43.         // RELLENAMOS LA TABLA CON LOS DATOS.
  44.         echo "<tr>";
  45.         echo "<td align=\"left\">".$datos2['descripCentro']." </td>";
  46.         echo "<td align=\"center\">".$datos2['numeroPregunta']." </td>";
  47.         echo "<td align=\"center\">".$datos2['evaluador1']." </td>";
  48.         echo "<td align=\"center\">".$datos2['evaluador2']." </td>";
  49.         echo "<td align=\"center\">".$datos2['evaluador3']." </td>";
  50.         echo "<td align=\"center\">".$media."</td>";
  51.         echo "<td align=\"center\">".$ponderacion."</td>";
  52.         echo "</tr>";
  53.        
  54.  
  55.    
  56.    
  57.             // CONTAMOS EL NÚMERO DE REGISTROS PARA DIVIDIR.
  58.             $sql4 = ("SELECT COUNT(*) FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  59.             $resultados4 = mysql_query($sql4);
  60.             while($datos4 = mysql_fetch_array($resultados4)){
  61.                 $cuenta = $datos4[0];
  62.             }
  63.            
  64.             // SELECIONAMOS Y SUMAMOS LA MEDIA CUANDO SEA ESE NUMERO DE PREGUNTA EN ESE AMBITO.
  65.             $sql5 = ("SELECT SUM(ponderacion) as resultado FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  66.             $resultados5 = mysql_query($sql5);
  67.             while($datos5 = mysql_fetch_array($resultados5)){
  68.                     $mediatotal = round($datos5[0],2);
  69.                    
  70.                    
  71.             }
  72.  
  73.         $mt [$datos2['numeroPregunta']]= $mediatotal;  
  74.         }
  75.  
  76.         // CERRAMOS LA TABLA.
  77.         echo "</table>";
  78.         echo "<br>";
  79.        
  80.         // IMPRIMIMOS LAS MEDIAS TOTALES.
  81.         echo "<b>Medias Totales. <br>Ambito: </b> ".$datos['descripAmbito']."";
  82.         echo "<table border=\"1\" class=\"encuestas\">";
  83.         echo "<br>";
  84.         echo "<tr><td><b>Numero Pregunta </b></td><td><b>Resultado</b></td></tr>";
  85.         foreach ($mt as $numpre => $mediattl){
  86.         echo "<tr><td>".$numpre."</td><td>".$mediattl."</td></tr>";
  87.         }
  88.         echo "</table>";
  89.  
  90.  
  91. }
  92.  
  93. // Output-Buffer in variable:
  94. $html=ob_get_contents();
  95. // delete Output-Buffer
  96. echo $html;
  97. //$pdf = new HTML2FPDF();
  98. //$pdf->DisplayPreferences('HideWindowUI');
  99. //$pdf->AddPage();
  100. //$pdf->UseCSS($opt==true);
  101. //$pdf->WriteHTML($html);
  102. //$pdf->ReadCSS($html);
  103. //$pdf->Output('reporte_encuesta.pdf','D');
  104. ?>


Comentando las lineas que crean el pdf y demás, y me lo muestra correcto con todos los datos etc.. pero en cuanto vuelvo a descomentar las lineas crea el pdf lo descarga y no hay manera de abrirlo, da error..
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #9 (permalink)  
Antiguo 06/06/2012, 11:31
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: problemas HTML2PDF

Cita:
Iniciado por oNefl0w189 Ver Mensaje
Lo he echo como comentaba el compi miSko que lo he encontrado también en una página por ahí después de dar 10 millones de vueltas xD

el código me queda así:
Código PHP:
Ver original
  1. <?
  2. require_once('html2fpdf.php');
  3.  include('conex.php');
  4.  
  5. // activate Output-Buffer:
  6. echo "<script type=\"text/javascript\" src=\"style.css\"></script>";
  7.  
  8.  
  9.     $amb = $_GET["ambito"];
  10.  
  11.     // SELECCIONAMOS EL ÁMBITO.
  12.     $ambitos = ("SELECT ambitos.codAmbito, ambitos.descripAmbito FROM ambitos WHERE codAmbito = '$amb' ORDER BY codAmbito");
  13.     $resuambitos = mysql_query($ambitos);
  14.  
  15.    
  16.     // MIENTRAS HAYA ÁMBITO IMPRIME.
  17. while($datos = mysql_fetch_assoc($resuambitos)) {
  18.  
  19.     $mt = array();
  20.  
  21.     echo "<b>Datos Encuesta.<br>  Ambito: </b>  ".$datos['descripAmbito']."";
  22.     // IMPRIMIMOS EL TÍTULO Y ABRIMOS LA TABLA.
  23.     echo "<br>";
  24.     echo "<table border=\"1\" class=\"encuestas\"><tr><td><b>Centro</b></td><td><b>Numero Pregunta</b></td><td><b>Eval1</b></td><td><b>Eval2</b></td><td><b>Eval3</b></td><td><b>Media</b></td><td><b>Ponderacion</b></td></tr>";
  25.    
  26.     // SELECIONAMOS TODOS LOS DATOS DE ENCUESTAS CUANDO TENGAN ESE CÓDIGO DE AMBITO.
  27.     $encuestas = ("SELECT descripAmbito, descripCentro, encuestas.codAmbito, encuestas.codCentro, numeroPregunta, evaluador1, evaluador2, evaluador3, opinPos, opinNeg, media, ponderacion
  28.     FROM ambitos, centros, encuestas
  29.     WHERE ambitos.codAmbito = '".$datos['codAmbito']."'
  30.     AND ambitos.codAmbito = encuestas.codAmbito
  31.     AND centros.codCentro = encuestas.codCentro
  32.     ORDER BY encuestas.numeroPregunta");
  33.     $resuencuestas = mysql_query($encuestas);
  34.        
  35.         // MIENTRAS  HAYA RESULTADOS IMPRIME.
  36.         while($datos2 = mysql_fetch_assoc($resuencuestas)) {
  37.                    
  38.  
  39.         $media = round($datos2['media'],2);
  40.         $ponderacion = round($datos2['ponderacion'],2);
  41.                    
  42.         // RELLENAMOS LA TABLA CON LOS DATOS.
  43.         echo "<tr>";
  44.         echo "<td align=\"left\">".$datos2['descripCentro']." </td>";
  45.         echo "<td align=\"center\">".$datos2['numeroPregunta']." </td>";
  46.         echo "<td align=\"center\">".$datos2['evaluador1']." </td>";
  47.         echo "<td align=\"center\">".$datos2['evaluador2']." </td>";
  48.         echo "<td align=\"center\">".$datos2['evaluador3']." </td>";
  49.         echo "<td align=\"center\">".$media."</td>";
  50.         echo "<td align=\"center\">".$ponderacion."</td>";
  51.         echo "</tr>";
  52.        
  53.  
  54.    
  55.    
  56.             // CONTAMOS EL NÚMERO DE REGISTROS PARA DIVIDIR.
  57.             $sql4 = ("SELECT COUNT(*) FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  58.             $resultados4 = mysql_query($sql4);
  59.             while($datos4 = mysql_fetch_array($resultados4)){
  60.                 $cuenta = $datos4[0];
  61.             }
  62.            
  63.             // SELECIONAMOS Y SUMAMOS LA MEDIA CUANDO SEA ESE NUMERO DE PREGUNTA EN ESE AMBITO.
  64.             $sql5 = ("SELECT SUM(ponderacion) as resultado FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  65.             $resultados5 = mysql_query($sql5);
  66.             while($datos5 = mysql_fetch_array($resultados5)){
  67.                     $mediatotal = round($datos5[0],2);
  68.                    
  69.                    
  70.             }
  71.  
  72.         $mt [$datos2['numeroPregunta']]= $mediatotal;  
  73.         }
  74.  
  75.         // CERRAMOS LA TABLA.
  76.         echo "</table>";
  77.         echo "<br>";
  78.        
  79.         // IMPRIMIMOS LAS MEDIAS TOTALES.
  80.         echo "<b>Medias Totales. <br>Ambito: </b> ".$datos['descripAmbito']."";
  81.         echo "<table border=\"1\" class=\"encuestas\">";
  82.         echo "<br>";
  83.         echo "<tr><td><b>Numero Pregunta </b></td><td><b>Resultado</b></td></tr>";
  84.         foreach ($mt as $numpre => $mediattl){
  85.         echo "<tr><td>".$numpre."</td><td>".$mediattl."</td></tr>";
  86.         }
  87.         echo "</table>";
  88.  
  89.  
  90. }
  91.  
  92. // Output-Buffer in variable:
  93. $html=ob_get_contents();
  94. // delete Output-Buffer
  95. $pdf = new HTML2FPDF();
  96. $pdf->DisplayPreferences('HideWindowUI');
  97. $pdf->AddPage();
  98. $pdf->UseCSS($opt==true);
  99. $pdf->WriteHTML($html);
  100. $pdf->ReadCSS($html);
  101. $pdf->Output('reporte_encuesta.pdf','D');
  102. ?>



La cosa es que trabajando sobre XAMPP en localhost, me genera el PDF perfectamente.

Ahora he subido el trabajo a un servidor web (fedora) con un LAMPP instalado, y me genera el PDF y me lo descarga, pero al abrirlo
me da el error:


No hago más que darle vueltas y no hay manera.. nose donde puede estar el problema!

Quizás algo de la configuración de lampp que tenga que ver con eso? porque con xampp no me pasa.. ;S

ayuda plz! un saludo.
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #10 (permalink)  
Antiguo 07/06/2012, 20:39
Avatar de mft
mft
 
Fecha de Ingreso: abril-2003
Ubicación: *
Mensajes: 239
Antigüedad: 21 años, 7 meses
Puntos: 4
Respuesta: problemas HTML2PDF

checa que aunque te haya salido el error, el archivo haya descargado bien. A mi me pasó una vez, no sé porque me marcaba error, pero descargaba bien.

Eso me sucedía tambien con archivos de excel en descarga, pero si los abría despues, osea no directamente de la descarga estaban bien.
__________________
Lo que haces, determina lo que eres.
Saludos!
  #11 (permalink)  
Antiguo 08/06/2012, 06:43
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: problemas HTML2PDF

Cita:
Iniciado por mft Ver Mensaje
checa que aunque te haya salido el error, el archivo haya descargado bien. A mi me pasó una vez, no sé porque me marcaba error, pero descargaba bien.

Eso me sucedía tambien con archivos de excel en descarga, pero si los abría despues, osea no directamente de la descarga estaban bien.
Lo he probado pero no... no se abre, y de echo con firefox directamente me da un error en la página y me pone "Ha habido un error con el archivo PDF" o algo así..
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)

Etiquetas: html, html2pdf, mysql, registro, sql, tabla
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 03:17.