Foros del Web » Programando para Internet » PHP »

Dompdf y myssql

Estas en el tema de Dompdf y myssql en el foro de PHP en Foros del Web. Hola a todos pues les cuento que me puse a probar uns libreias php a pdf en concreto la DOMPDF con MySQL y me he ...
  #1 (permalink)  
Antiguo 25/10/2011, 10:58
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Dompdf y myssql

Hola a todos pues les cuento que me puse a probar uns libreias php a pdf en concreto la DOMPDF con MySQL y me he trancado XD, esto es la estructura que he hencontrado y estoy siguiendo.

Código PHP:
Ver original
  1. <?php
  2. require_once("dompdf_config.inc.php");
  3.  
  4. /*
  5. mysql_query...
  6. mysql_fetch...
  7. */
  8. $html = 'generated html...';
  9.  
  10. $dompdf = new DOMPDF();
  11. $dompdf->load_html($html);
  12. $dompdf->render();
  13. $dompdf->stream("/tmp/sample.pdf");
  14. /*
  15. Add mail to code to attach /tmp/sample.pdf to a email and send
  16. */
  17. ?>

El mio lo tengo asi.

Código PHP:
Ver original
  1. <?php
  2. require_once("../pdf/dompdf/dompdf_config.inc.php");
  3.  
  4. /*
  5. mysql_query...
  6. mysql_fetch...
  7. */
  8. $link = mysql_connect("localhost", "root","");
  9. mysql_select_db("reqcot", $link);  
  10. $result = mysql_query("SELECT * FROM prueba ", $link);
  11.  
  12. $html = 'Aqui he probado sin exito -_-';
  13.  
  14. $dompdf = new DOMPDF();
  15. $dompdf->load_html($html);
  16. $dompdf->render();
  17. $dompdf->stream("sample.pdf");
  18. /*
  19. Add mail to code to attach /tmp/sample.pdf to a email and send
  20. */
  21. ?>

En lo que me he trabado es que no se como meter este codigo en $html:

Código PHP:
Ver original
  1. if ($row = mysql_fetch_array($result)){
  2.  echo "<table width='200' border='1' align='center' >
  3.    <td align='center'>Nombre</td>
  4.    <td align='center'>Apellido</td>
  5.     \n";
  6.    
  7.    do {
  8.       echo "
  9.  <tr>
  10.    <td align='center'>".$row["nombre"]."</td>
  11.    <td align='center'>".$row["apellido"]."</td>
  12.     <td align='center'><form action='frmprueba.php' method='get'>
  13.         <input type='hidden' name='idprueba' value=".$row["idprueba"]." />
  14.          <input type='hidden' name='nombre' value=".$row["nombre"]." />
  15.          <input type='hidden' name='apellido' value=".$row["apellido"]." />
  16.        
  17. </form></td>
  18.  </tr>
  19.       ";
  20.    } while ($row = mysql_fetch_array($result));
  21.    echo "</table> \n";
  22. } else {
  23. echo "¡ No se ha encontrado ningún registro !";
  24. }

Les agradeceria que me pudieran orientar un poco gracias.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #2 (permalink)  
Antiguo 25/10/2011, 11:05
Avatar de isisra  
Fecha de Ingreso: diciembre-2009
Mensajes: 68
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Dompdf y myssql

Hola carnal oye yo tambien hago reportes en pdf desde php y mysql
pero me gusto mas esta libreria ya que tienes opciones para configurar tu
html a gusto
por ejemplo haces la maqueta en html de como quieras que se vea el pdf
despues agregas lo de la base de datos y ya todo despues lo metes a una cadena
bueno si quieres te explico mas o si quieres checa la libreria que te digo es muy buena

esta es la pagina ok... http://www.mpdf1.com/mpdf/

cualquier duda me dices va...
  #3 (permalink)  
Antiguo 25/10/2011, 11:09
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Dompdf y myssql

Gracias por responder esa tambien la he bajado XD, por eso digo que estoy probando las librerias ya probe tcppdf y ahora estoy probando esta DOMPDF, lo importante es que quiero aprender a hacerlo tambien con DOMPDF, igualmente gracias por la sugerencia espero que alguien me pueda ayudar.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #4 (permalink)  
Antiguo 25/10/2011, 12:17
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Dompdf y myssql

Dompdf es extremadamente simple de usar.

Lo que tienen que entender los que lo usen, es que en vez de hacer "echos", deben ir añadiendo toda salida de html a una variable, para al final esta variabla pasarla a dompdf para que la pase a pdf.

ejemplo:
Código PHP:
Ver original
  1. $html="";
  2. if ($row = mysql_fetch_array($result)){
  3.  $html.="<table width='200' border='1' align='center' >
  4.    <td align='center'>Nombre</td>
  5.    <td align='center'>Apellido</td>
  6.    \n";
  7.    
  8.    do {
  9.       $html.= "
  10.  <tr>
  11.    <td align='center'>".$row["nombre"]."</td>
  12.    <td align='center'>".$row["apellido"]."</td>
  13.    <td align='center'><form action='frmprueba.php' method='get'>
  14.         <input type='hidden' name='idprueba' value=".$row["idprueba"]." />
  15.         <input type='hidden' name='nombre' value=".$row["nombre"]." />
  16.         <input type='hidden' name='apellido' value=".$row["apellido"]." />
  17.        
  18. </form></td>
  19.  </tr>
  20.      ";
  21.    } while ($row = mysql_fetch_array($result));
  22.    $html.="</table> \n";
  23. } else {
  24. $html.= "¡ No se ha encontrado ningún registro !";
  25. }
Aquí pusimos todo dentro de la variable $html, ésta hay que pasarla a dompdf, lo cual incluso ya está en el ejemplo anterior en la linea

$dompdf->load_html($html);
  #5 (permalink)  
Antiguo 25/10/2011, 13:17
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Dompdf y myssql

Gracias por responder es lo que necesitaba, lo he probado pero me bota un error:

Fatal error: Call to undefined method Inline_Frame_Decorator::normalise() in C:\xampp\htdocs\reqcot\pdf\dompdf\include\table_fr ame_decorator.cls.php on line 252


este es el codigo que tengo:

Código PHP:
Ver original
  1. <?php
  2. require_once("../pdf/dompdf/dompdf_config.inc.php");
  3.  
  4. /*
  5. mysql_query...
  6. mysql_fetch...
  7. */
  8. $link = mysql_connect("localhost", "root","");
  9. mysql_select_db("reqcot", $link);  
  10. $result = mysql_query("SELECT * FROM prueba ", $link);
  11. $html="";
  12. if ($row = mysql_fetch_array($result)){
  13.  $html.="<table width='200' border='1' align='center' >
  14.    <td align='center'>Nombre</td>
  15.    <td align='center'>Apellido</td>";
  16.    
  17.    do {
  18.       $html.= "
  19.  <tr>
  20.    <td align='center'>".$row["nombre"]."</td>
  21.    <td align='center'>".$row["apellido"]."</td>
  22.    <td align='center'>
  23.     <form action='frmprueba.php' method='get'>
  24.         <input type='hidden' name='idprueba' value=".$row["idprueba"]." />
  25.         <input type='hidden' name='nombre' value=".$row["nombre"]." />
  26.         <input type='hidden' name='apellido' value=".$row["apellido"]." />      
  27.    </form>
  28.     </td>
  29.  </tr>
  30.      ";
  31.    } while ($row = mysql_fetch_array($result));
  32.    $html.="</table> \n";
  33. } else {
  34. $html.= "¡ No se ha encontrado ningún registro !";
  35. }
  36.  
  37. $dompdf = new DOMPDF();
  38. $dompdf->load_html($html);
  39. $dompdf->render();
  40. $dompdf->stream("sample.pdf");
  41. /*
  42. Add mail to code to attach /tmp/sample.pdf to a email and send
  43. */
  44. ?>


lo raro es que funciona en el mpdf XD al parecer no encuentra una clase o habia que configurar algo, igualmente gracias si me indicaron algo para solucionar ese error seria de gran ayuda.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #6 (permalink)  
Antiguo 25/10/2011, 13:49
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Dompdf y myssql

Ese error es por el estilo que le das a la tabla.

Dompdf es muy potente, pero a la vez muy riguroso en cuanto al html que le ingresa. Tu html debe estar bien formado y tener todas las etiquetas correctamente abiertas y cerradas, además que es mejor si utilizas css y no propiedades antiguas como align='center'
  #7 (permalink)  
Antiguo 26/10/2011, 09:49
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Dompdf y myssql

Si efectivamente tenia mal los tags ,asi los tengo ahora probe y funciona en verdad es una libreria muy util gracias de nuevo por la ayuda.

Código PHP:
Ver original
  1. <?php
  2. require_once("../pdf/dompdf/dompdf_config.inc.php");
  3. $conexion = mysql_connect("localhost", "root", "");
  4. mysql_select_db("reqcot", $conexion);
  5. $query_R_2 = "SELECT * FROM prueba";
  6. $R_2 = mysql_query($query_R_2, $conexion) or die(mysql_error());
  7. $row_R_2 = mysql_fetch_assoc($R_2);
  8. $totalRows_R_2 = mysql_num_rows($R_2);
  9. $html =
  10. '<html><body>
  11. <table width="100%" border="0" cellspacing="0" cellpadding="0">';
  12. while ($row_R_2 = mysql_fetch_assoc($R_2))
  13. {
  14. $html .= '
  15. <tr>
  16. <td>Nro registro</td>
  17. <td>Nombre</td>
  18. <td bgcolor="#6600CC">Marca</td>
  19. </tr>
  20. <tr>
  21. <td>XXX</td>
  22. <td><div align="center">'.$row_R_2["nombre"].'</div></td>
  23. <td><div align="right">'.$row_R_2["apellido"].'</div></td>
  24. </tr>';
  25. };
  26. $html .= '
  27. </table>
  28. </body></html>';
  29. $dompdf = new DOMPDF();
  30. $dompdf->load_html($html);
  31. $dompdf->render();
  32. $dompdf->stream("sample.pdf", array('Attachment'=>'0'));
  33. ?>
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.

Etiquetas: dompdf, html, mysql, registro
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 10:00.