Ir al contenido


Foto

[RESUELTO] Conversion de PHP a PDF


  • Por favor identifícate para responder
15 respuestas en este tema

#1 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 18 agosto 2011 - 07:22

Tengo el siguiente codigo que me esta funcionando hasta cierto punto, lo que necesitaria es la cuestion cuando un include este dentro de un php dentro otro php, como se convertiria est linea de codigo 



delphi
  1. <?php
  2. require_once("dompdf/dompdf_config.inc.php");
  3. session_start();
  4. $data_root = $_SERVER[DOCUMENT_ROOT];
  5. include ($data_root . "/site/sec/funciones.php");
  6. $menu_links = "";
  7. if (isset($_SESSION['id'])) {
  8.   $userid = $_SESSION['id'];
  9.   $usuario = $_SESSION['usuario'];
  10.   //CREACION DEL MENU AUTOMATICO
  11.   //MENU USUARIOS REGISTRADOS
  12.   $menu_links = '<a href="cuenta.php?id=' . $userid . '">' . $usuario . '[/url] &bull; <a href="logout.php">Fin Sesion[/url]';
  13. } else {
  14.   //MENU USUARIOS NO REGISTRADOS
  15.   $menu_links = '<a href="registro.php">Registrarse[/url] &bull; <a href="login.php">Inicio de Sesion[/url]';
  16.   header("location: cuenta.php");
  17.   exit();
  18. }
  19.  
  20. $menu_links2 = "";
  21. $sql = mysql_query("SELECT * FROM registro WHERE id='$userid'");
  22. if($row = mysql_fetch_array($sql)){
  23.   $nombres = $row["nombres"];
  24.   $apellidos = $row["apellidos"];
  25.   $email = $row["email"];
  26.   $telefonos = $row["telefono"];
  27.   $nick= $row["nick"];
  28.   $password= $row["password"];
  29.   $estado= $row["estado"];
  30.   $zona= $row["zona"];
  31. }
  32.  
  33.  
  34.   $fecha = date("d-m-Y");
  35.   $html=
  36. "<html>
  37.  
  38. <body  bgcolor='#FFFFFF'>
  39. <div id='contenido'><div class='header'>
  40. <table width='700' border='0'>
  41. <tr>
  42. <td height='108' align='left'><img src='img/logo.gif' border='0' /></td>
  43. </tr>
  44. </table>
  45. </div>
  46. <div class='principal' align='center'>
  47.     <div class='cabeza' >Cotizaci&oacute;n de Productos</div>
  48.    
  49. <table width='601' align='center'>
  50. <tr>
  51. <td width='192' align='center'>Datos del Usuario</td>
  52. <td align='right'>Fecha de Cotizaci&oacute;n $fecha</td>
  53. </tr>
  54. <tr>
  55. <td align='center'>Nombre</td><td width='397'>$nombres</td>
  56. </tr>
  57. <tr>
  58. <td align='center'>Apellidos</td><td>$apellidos</td>
  59. </tr>
  60. <tr>
  61. <td align='center'>Telefono</td>
  62. <td>$telefonos</td>
  63. </tr>
  64. <tr>
  65. <td colspan='2'></td>
  66. </tr>
  67. </table>
  68. [br /]
  69. [br /]
  70. [br /]
  71. [br /]
  72. [br /]
  73. <div>
  74. <?php include($_SERVER[DOCUMENT_ROOT] . "/site/vercarrito.php"); ?></div> 
  75. </body>
  76. </html>
  77. ";
  78. $dompdf = new DOMPDF();
  79. $dompdf->load_html($html);
  80. $dompdf->render();
  81. $dompdf->stream("cotizacion.pdf");
  82. ?>


he aqui el problemita 


delphi
  1. <div><?php include($_SERVER[DOCUMENT_ROOT] . "/site/vercarrito.php"); ?></div>


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 agosto 2011 - 08:23

Es que esa línea está dentro de una variable string, debes concatenarla:



php
  1. $html=
  2. "<html>
  3.  
  4. <body  bgcolor='#FFFFFF'>
  5. <div id='contenido'><div class='header'>
  6. <table width='700' border='0'>
  7. <tr>
  8. <td height='108' align='left'><img src='img/logo.gif' border='0' /></td>
  9. </tr>
  10. </table>
  11. </div>
  12. <div class='principal' align='center'>
  13.     <div class='cabeza' >Cotizaci&oacute;n de Productos</div>
  14.    
  15. <table width='601' align='center'>
  16. <tr>
  17. <td width='192' align='center'>Datos del Usuario</td>
  18. <td align='right'>Fecha de Cotizaci&oacute;n $fecha</td>
  19. </tr>
  20. <tr>
  21. <td align='center'>Nombre</td><td width='397'>$nombres</td>
  22. </tr>
  23. <tr>
  24. <td align='center'>Apellidos</td><td>$apellidos</td>
  25. </tr>
  26. <tr>
  27. <td align='center'>Telefono</td>
  28. <td>$telefonos</td>
  29. </tr>
  30. <tr>
  31. <td colspan='2'></td>
  32. </tr>
  33. </table>
  34. <div> " .
  35. <?php include($_SERVER[DOCUMENT_ROOT] . "/site/vercarrito.php"); ?> . "</div> 
  36. </body>
  37. </html>";



Saludos.
  • 0

#3 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 18 agosto 2011 - 09:31

Gracias, pero creo que no me funciona por la otra etiqueta php, antes del HTML,



delphi
  1. <?php include($_SERVER[DOCUMENT_ROOT] . "/site/vercarrito.php"); ?> . "</div> 



:s

el Tags que abre el php <php se encuentra en azul mas no en rojo oscuro, y el div que cierra </div> esta en azul deberia estar en rojo
igualmente esta en azul el </body></html>

y lo demas esta en negro inclusive el ?> principal

creo que es un dolor de cabeza,  (li)
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 agosto 2011 - 09:45

¿De donde sacas la cuestión de los colores?, ¿ de los tags de aquí ?, olvídate de ellos sólo pruebalos y nos comentas.

Saludos.

  • 0

#5 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 18 agosto 2011 - 10:11

8o| (li) :s etc...

si hay problemas de etiquetas el error que ahora me da es el siguiente:


Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\site\pedidos.php on line 68

justamente en la linea de:



delphi
  1. <div> " .<?php include($_SERVER[DOCUMENT_ROOT] . "/site/vercarrito.php"); ?> . "</div>


y en el prewiev de DreamWeaver, me sale esto :
    . " "; $dompdf = new DOMPDF(); $dompdf->load_html($html); $dompdf->render(); $dompdf->stream("cotizacion.pdf"); ?>

que no me deberia de salir nada, en blanco todo.  : Que Stresss
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 agosto 2011 - 10:44

Extraño pues intenta obviando la etiqueta <?php por <?:



php
  1. <div> " .<? include($_SERVER[DOCUMENT_ROOT] . "/site/vercarrito.php"); ?> . "</div>;



Saludos.

  • 0

#7 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 19 agosto 2011 - 12:20

En tu código original solamente tienes que escapar las comillas anteponiendo un backslash
de la siguiente manera  \" quedando así:




php
  1. "...
  2. <div>
  3.   <?php include($_SERVER[DOCUMENT_ROOT] . \"/site/vercarrito.php\"); ?></div>
  4. ..."



Lo que ocurre es que tienes una cadena que inicia con comillas y en su interior estás abriendo otro par de comillas en "/site/vercarrito.php", entonces se interpreta que ya has cerrado el primer par cuando no es esa tu intención. Para evitarlo se antepone un backslash y de esa forma se pueden anidar. Otra opción es que utilices otro tipo de comillas para no confundir, por ejemplo :



php
  1. "....
  2.   <div>
  3.     <?php include($_SERVER[DOCUMENT_ROOT] . '/site/vercarrito.php'); ?></div>
  4. ..."
  5.  




El código completo puede quedar así:



php
  1. <?php
  2. require_once("dompdf/dompdf_config.inc.php");
  3. $data_root = $_SERVER[DOCUMENT_ROOT];
  4. include ($data_root . "/site/sec/funciones.php");
  5. $menu_links = "";
  6. if (isset($_SESSION['id'])) {
  7.   $userid = $_SESSION['id'];
  8.   $usuario = $_SESSION['usuario'];
  9.   //CREACION DEL MENU AUTOMATICO
  10.   //MENU USUARIOS REGISTRADOS
  11.   $menu_links = '<a href="cuenta.php?id=' . $userid . '">' . $usuario . '</a> &bull; <a href="logout.php">Fin Sesion</a>';
  12. } else {
  13.   //MENU USUARIOS NO REGISTRADOS
  14.   $menu_links = '<a href="registro.php">Registrarse</a> &bull; <a href="login.php">Inicio de Sesion</a>';
  15.   header("location: cuenta.php");
  16.   exit();
  17. }
  18.  
  19. $menu_links2 = "";
  20. $sql = mysql_query("SELECT * FROM registro WHERE id='$userid'");
  21. if($row = mysql_fetch_array($sql)){
  22.   $nombres = $row["nombres"];
  23.   $apellidos = $row["apellidos"];
  24.   $email = $row["email"];
  25.   $telefonos = $row["telefono"];
  26.   $nick= $row["nick"];
  27.   $password= $row["password"];
  28.   $estado= $row["estado"];
  29.   $zona= $row["zona"];
  30. }
  31.  
  32.  
  33.   $fecha = date("d-m-Y");
  34.   $html=
  35. "<html>
  36.  
  37. <body  bgcolor='#FFFFFF'>
  38. <div id='contenido'><div class='header'>
  39. <table width='700' border='0'>
  40. <tr>
  41. <td height='108' align='left'><img src='img/logo.gif' border='0' /></td>
  42. </tr>
  43. </table>
  44. </div>
  45. <div class='principal' align='center'>
  46.     <div class='cabeza' >Cotizaci&oacute;n de Productos</div>
  47.    
  48. <table width='601' align='center'>
  49. <tr>
  50. <td width='192' align='center'>Datos del Usuario</td>
  51. <td align='right'>Fecha de Cotizaci&oacute;n $fecha</td>
  52. </tr>
  53. <tr>
  54. <td align='center'>Nombre</td><td width='397'>$nombres</td>
  55. </tr>
  56. <tr>
  57. <td align='center'>Apellidos</td><td>$apellidos</td>
  58. </tr>
  59. <tr>
  60. <td align='center'>Telefono</td>
  61. <td>$telefonos</td>
  62. </tr>
  63. <tr>
  64. <td colspan='2'></td>
  65. </tr>
  66. </table>
  67. <br />
  68. <br />
  69. <br />
  70. <br />
  71. <br />
  72. <div>
  73. <?php include($_SERVER[DOCUMENT_ROOT] . \"/site/vercarrito.php\"); ?></div>
  74. </body>
  75. </html>
  76. ";
  77. $dompdf = new DOMPDF();
  78. $dompdf->load_html($html);
  79. $dompdf->render();
  80. $dompdf->stream("cotizacion.pdf");
  81. ?>



  • 0

#8 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 19 agosto 2011 - 07:24

Nada de nada, coloque esa linea de codigo talcual , me abre el .pdf pero donde me tiene que mostrar la lista de producto que esta en vercarrito.php, me muestra en blanco  :s 8o|
  • 0

#9 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 19 agosto 2011 - 08:27

Ahora muéstranos el código del archivo vercarrito.php para ver qué está ocurriendo.

Saludos

  • 0

#10 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 19 agosto 2011 - 08:30

Buenas este es el codigo de vercarrito.php
creo que lo que esta pasando son interferencias de variable  8o|


delphi
  1. <?php 
  2. session_start();
  3. //Iniciamos o retomamos la
  4. //sesión
  5. if(isset($_SESSION['carro']))
  6. $carro=$_SESSION['carro'];else $carro=false;
  7. //La asignamos a la variable
  8. //$carro si existe o ponemos a false $carro
  9. //en caso contrario
  10. ?>
  11. <html>
  12. <head>
  13. <title>PRODUCTOS AGREGADOS AL CARRITO</title>
  14. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  15. <link href="styles2.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18.  
  19. <?php 
  20. if($carro){
  21. //si el carro no está vacío,
  22. //mostramos los productos 
  23. ?>
  24. <table width="680" border="0" cellspacing="0" cellpadding="0" align="center">
  25. <tr bgcolor="#333333" class="tit"> 
  26. <td width="60">Ref:</td>
  27. <td width="150">Producto</td>
  28. <td width="80">Precio</td>
  29. <td colspan="2" align="center">Cantidad de Unidades</td>
  30. <td width="100" align="center">Borrar</td>
  31. <td width="159" align="center">Actualizar</td>
  32. </tr>
  33. <?php
  34. $color=array("#ffffff","#F0F0F0");
  35. $contador=0;
  36. //las 2 líneas anteriores
  37. //sirven sólo para hacer
  38. //una tabla con colores 
  39. //alternos
  40. $suma=0;
  41. //antes de recorrer todos
  42. //los valores de la matriz
  43. //$carro, ponemos a cero la
  44. //variable $suma, en la que
  45. //iremos sumando los subtotales
  46. //del costo de cada item por la
  47. //cantidad de unidades que se
  48. //especifiquen 
  49. foreach($carro as $k => $v){
  50. //recorremos la matriz que tiene
  51. //todos los valores del carro, 
  52. //calculamos el subtotal y el
  53. // total 
  54. $subto=$v['cantidad']*$v['PrecioUnitario1'];
  55. $suma=$suma+$subto;
  56. $contador++;
  57. //este es el contador que usamos
  58. //para los colores alternos 
  59. ?>
  60. <form name="a<?php echo $v['identificador'] ?>" method="post" action="agregacar.php?<?php echo SID ?>" id="a<?php echo $v['identificador'] ?>">
  61. <tr bgcolor="<?php echo $color[$contador%2]; ?>" class='prod'> 
  62. <td><?php echo $v['Referencia'] ?></td>
  63. <td><?php echo $v['Descripcion'] ?></td>
  64. <td><?php echo $v['PrecioUnitario1'] ?></td>
  65. <td width="43" align="center"><?php echo $v['cantidad'] ?></td>
  66. <td width="136" align="center"> 
  67. <input name="cantidad" type="text" id="cantidad" value="<?php echo $v['cantidad'] ?>" size="8">
  68. <input name="id" type="hidden" id="id" value="<?php echo $v['CodigoProducto'] ?>"> </td>
  69. <td align="center"><a href="borracar.php?<?php echo SID ?>&id=<?php echo $v['CodigoProducto'] ?>"><img src="img/trash.gif" width="12" height="14" border="0"></a></td>
  70. <td align="center"> 
  71. <input name="imageField" type="image" src="img/actualizar.gif" width="20" height="20" border="0"></td>
  72. </tr></form>
  73. <?php
  74. //por cada item creamos un
  75. //formulario que submite a
  76. //agregar producto y un link
  77. //que permite eliminarlos 
  78. }
  79. ?>
  80. </table>
  81. <div align="center"><span class="prod">Total de Artículos: <?php echo count($carro);
  82. //el total de items va a ser igual
  83. //a la cantidad de elementos que
  84. //tenga la matriz $carro, valor
  85. //que obtenemos con la función
  86. //count o con sizeof 
  87. ?></br>Todos Los Precios Incluyen IVA</span> 
  88. </div><br>
  89. <div align="center"><span class="prod">Total: BsF.<?php echo number_format($suma,2);
  90. //mostramos el total de la variable
  91. //$suma formateándola a 2 decimales 
  92. ?></span></div><br>
  93. <div align="center">
  94.   <p><span class="prod">Continuar la selección de productos</span> 
  95.     <a href="http://192.168.1.41/site/index.php">
  96.   <img src="img/continuar.gif" width="13" height="13" border="0"></a>
  97.   </p>
  98. </div>
  99. <?php }else{ ?>
  100. <p align="center"> <span class="prod">No hay productos seleccionados</span>
  101. <a href="http://192.168.1.41/site/index.php">
  102. <img src="img/continuar.gif" width="13" height="13" border="0"></a> 
  103. <?php }?>
  104. </p>
  105. </body>
  106. </html>


  • 0

#11 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 19 agosto 2011 - 09:08

Ya veo que lo que intentas hacer es ejecutar el script vercarrito.php y su resultado concatenarlo con otro texto y enviarlo como parámetro a la función que genera un PDF.

El problema es que así como lo tienes no te puede funcionar porque al ejecutar el script no puedes recuperar su salida como cadena directamente.

Una alternativa es utilizar las funciones ob_start() y ob_get_clean()  (busca información en el manual de PHP para entender su funcionamiento).

Para el caso que nos ocupa lo que haremos será capturar la salida del script vercarrito.php y la almacenamos en una variable como cadena, después la concatenamos con otras cadenas y la enviamos a la función que nos genera el pdf.


Lo primero será guardar la salida del script en de esta forma:



php
  1. include($_SERVER[DOCUMENT_ROOT] . '/site/vercarrito.php');
  2. $texto_en_carrito = ob_get_clean();




después la concatenamos



php
  1. $html=
  2. "<html>
  3.  
  4. <body  bgcolor='#FFFFFF'>
  5. <div id='contenido'><div class='header'>
  6. <table width='700' border='0'>
  7. <tr>
  8. <td height='108' align='left'><img src='img/logo.gif' border='0' /></td>
  9. </tr>
  10. </table>
  11. </div>
  12. <div class='principal' align='center'>
  13.     <div class='cabeza' >Cotizaci&oacute;n de Productos</div>
  14.  
  15. <table width='601' align='center'>
  16. <tr>
  17. <td width='192' align='center'>Datos del Usuario</td>
  18. <td align='right'>Fecha de Cotizaci&oacute;n $fecha</td>
  19. </tr>
  20. <tr>
  21. <td align='center'>Nombre</td><td width='397'>$nombres</td>
  22. </tr>
  23. <tr>
  24. <td align='center'>Apellidos</td><td>$apellidos</td>
  25. </tr>
  26. <tr>
  27. <td align='center'>Telefono</td>
  28. <td>$telefonos</td>
  29. </tr>
  30. <tr>
  31. <td colspan='2'></td>
  32. </tr>
  33. </table>
  34. <div>
  35.   $texto_en_carrito
  36. </div>
  37. </body>
  38. </html>
  39. ";



Ahora podemos enviar la cadena $html que contiene ya la salida del script vercarrito.php concatenada.

Con esto debería funcionar

Así queda el código completo



php
  1. <?php
  2. require_once("dompdf/dompdf_config.inc.php");
  3. $data_root = $_SERVER[DOCUMENT_ROOT];
  4. include ($data_root . "/site/sec/funciones.php");
  5. $menu_links = "";
  6. if (isset($_SESSION['id'])) {
  7.   $userid = $_SESSION['id'];
  8.   $usuario = $_SESSION['usuario'];
  9.   //CREACION DEL MENU AUTOMATICO
  10.   //MENU USUARIOS REGISTRADOS
  11.   $menu_links = '<a href="cuenta.php?id=' . $userid . '">' . $usuario . '[/url] &bull; <a href="logout.php">Fin Sesion[/url]';
  12. } else {
  13.   //MENU USUARIOS NO REGISTRADOS
  14.   $menu_links = '<a href="registro.php">Registrarse[/url] &bull; <a href="login.php">Inicio de Sesion[/url]';
  15.   header("location: cuenta.php");
  16.   exit();
  17. }
  18.  
  19. $menu_links2 = "";
  20. $sql = mysql_query("SELECT * FROM registro WHERE id='$userid'");
  21. if($row = mysql_fetch_array($sql)){
  22.   $nombres = $row["nombres"];
  23.   $apellidos = $row["apellidos"];
  24.   $email = $row["email"];
  25.   $telefonos = $row["telefono"];
  26.   $nick= $row["nick"];
  27.   $password= $row["password"];
  28.   $estado= $row["estado"];
  29.   $zona= $row["zona"];
  30. }
  31.  
  32.  
  33.   $fecha = date("d-m-Y");
  34.  
  35. include($_SERVER[DOCUMENT_ROOT] . '/site/vercarrito.php');
  36. $texto_en_carrito = ob_get_clean();
  37.  
  38.   $html=
  39. "<html>
  40.  
  41. <body  bgcolor='#FFFFFF'>
  42. <div id='contenido'><div class='header'>
  43. <table width='700' border='0'>
  44. <tr>
  45. <td height='108' align='left'><img src='img/logo.gif' border='0' /></td>
  46. </tr>
  47. </table>
  48. </div>
  49. <div class='principal' align='center'>
  50.     <div class='cabeza' >Cotizaci&oacute;n de Productos</div>
  51.  
  52. <table width='601' align='center'>
  53. <tr>
  54. <td width='192' align='center'>Datos del Usuario</td>
  55. <td align='right'>Fecha de Cotizaci&oacute;n $fecha</td>
  56. </tr>
  57. <tr>
  58. <td align='center'>Nombre</td><td width='397'>$nombres</td>
  59. </tr>
  60. <tr>
  61. <td align='center'>Apellidos</td><td>$apellidos</td>
  62. </tr>
  63. <tr>
  64. <td align='center'>Telefono</td>
  65. <td>$telefonos</td>
  66. </tr>
  67. <tr>
  68. <td colspan='2'></td>
  69. </tr>
  70. </table>
  71. <div>
  72.   $texto_en_carrito
  73. </div>
  74. </body>
  75. </html>
  76. ";
  77. $dompdf = new DOMPDF();
  78. $dompdf->load_html($html);
  79. $dompdf->render();
  80. $dompdf->stream("cotizacion.pdf");
  81. ?>



Saludos
  • 0

#12 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 19 agosto 2011 - 09:29

8o| (li)
Si no es una cosa es la otra

  que determinante es una linea de codigo ahhh
ahora es esto lo que me sale

Fatal error: Call to a member function get_cellmap() on a non-object in C:\xampp\htdocs\site\dompdf\include\table_cell_frame_reflower.cls.php on line 64

me fui al  table_cell_frame_reflower.cls.php dentro de la carpeta include y me mando pa un linea  donde tenia esto  */

es decir comentario finalizado  8o|
  • 0

#13 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 19 agosto 2011 - 09:50

Me da otro error y es de session

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\site\pedidos.php:1) in C:\xampp\htdocs\site\pedidos.php on line 3

Fatal error: Call to a member function get_cellmap() on a non-object in C:\xampp\htdocs\site\dompdf\include\table_cell_frame_reflower.cls.php on line 64

Me equivoque la linea 64 es:    $cellmap = $table->get_cellmap();
  • 0

#14 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 19 agosto 2011 - 09:56

Eso es porque estas llamando session_start() varias veces en pedidos.php debes eliminar toda repetición de la misma, ya que una sola vez basta.

Saludos.
  • 0

#15 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 19 agosto 2011 - 09:59

Creo que el problema es que encierras en etiquetas <table></table> toda la salida de vercarritto.php. La salida de este script es el código de toda una página que comienza con <HTML><BODY> etc...

Probablemente se le complica demasiado a la clase que utilizas para generar el PDF interpretar toda esa mezcla de etiquetas.

Como sugerencia, podrías crear un segundo script ver_lineas_carrito.php que solamente te despliegue la tabla que contiene los elementos del carrito retirando todo lo que está antes y después.


Por cierto, una sugerencia es que ahora que tienes todo capturado en la cadena $html puedes utilizarla como depuración. Es decir, muestra su contenido en el navegardor o guardalo en un archivo y así puedes comprobar que te devuelve lo que realmente necesitas. Es decir te tiene que generar código HTML válido y simple para que la clase PDF lo pueda interpretar sin problemas. Por ahora te puedes enfocar en lo que te devuelve la cadena $html y después te peleas con la clase PDF.

Saludos
  • 0

#16 annacd

annacd

    Member

  • Miembros
  • PipPip
  • 18 mensajes
  • LocationCaracas

Escrito 22 agosto 2011 - 02:22

<:o) (b) 
 

delphi
  1.   <?php
  2. require_once("dompdf/dompdf_config.inc.php");
  3. session_start();
  4. $data_root = $_SERVER[DOCUMENT_ROOT];
  5. include ($data_root . "/site/sec/funciones.php");
  6.  
  7.  
  8. $menu_links = "";
  9. if (isset($_SESSION['id'])) { $userid = $_SESSION['id'];
  10.  $usuario = $_SESSION['usuario'];
  11. //CREACION DEL MENU AUTOMATICO
  12. //MENU USUARIOS REGISTRADOS
  13.  $menu_links = '<a href="cuenta.php?id=' . $userid . '">' . $usuario . '</a> &bull; <a href="logout.php">Fin Sesion</a>';
  14.  } else {
  15.  //MENU USUARIOS NO REGISTRADOS
  16. $menu_links = '<a href="registro.php">Registrarse</a> &bull; <a href="login.php">Inicio de Sesion</a>';
  17. header("location: cuenta.php");
  18. exit();
  19.  }
  20. $menu_links2 = "";
  21. $sql = mysql_query("SELECT * FROM registro WHERE id='$userid'");
  22. if($row = mysql_fetch_array($sql)){
  23.  $nombres = $row["nombres"];
  24. $apellidos = $row["apellidos"];
  25. $email = $row["email"];
  26. $telefonos = $row["telefono"];
  27. $nick= $row["nick"];
  28. $password= $row["password"];
  29. $estado= $row["estado"];
  30. $zona= $row["zona"];
  31.  }
  32.  
  33. $fecha = date("d-m-Y");
  34. $carro =
  35. //La asignamos a la variable
  36. //$carro si existe o ponemos a false $carro
  37. //en caso contrario
  38. ob_start();
  39.  
  40. ?>
  41. <?php
  42. if(isset($_SESSION['carro']))
  43. $carro=$_SESSION['carro'];else $carro=false;
  44. ?>
  45. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  46. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  47. <head>
  48.     <style type="text/css">
  49. <!-- 
  50. .tit {
  51.     font-family: Verdana, Arial, Helvetica, sans-serif;
  52.     font-size: 9px;
  53.     color: #FFFFFF;
  54. }
  55. .prod {
  56.     font-family: Verdana, Arial, Helvetica, sans-serif;
  57.     font-size: 9px;
  58.     color: #333333;
  59. }
  60. h1 {
  61.     font-family: Verdana, Arial, Helvetica, sans-serif;
  62.     font-size: 20px;
  63.     color: #990000;
  64. }
  65. -->
  66. </style>
  67.  
  68. </head>
  69.  
  70. <body bgcolor="#FFFFFF">
  71. <div id="contenido">
  72. <div class="header">
  73. <table width="700" border="0">
  74. <tr>
  75. <td height="108" align="left"><img src="img/logo.gif" border="0" /></td>
  76. </tr>
  77. </table>
  78. </div>
  79. <div class="principal" align="center">
  80. <div class="cabeza">Cotizaci&oacute;n de Productos</div>
  81. <table width="518" align="center">
  82.   <tr>
  83.     <td colspan="5" align="left">Datos del Usuario</td>
  84.     <td colspan="2" align="right">Fecha de Cotizaci&oacute;n <?php echo $fecha;?></td>
  85.   </tr>
  86.   <tr>
  87.     <td colspan="4">Nombre</td>
  88.     <td width="124" align="left"><?php echo $nombres; ?></td>
  89.     <td width="61" align="left">E-Mail </td>
  90.     <td width="245" align="left"><?php echo $email; ?></td>
  91.   </tr>
  92.   <tr>
  93.     <td colspan="4">Apellidos</td>
  94.     <td colspan="3" align="left"><?php echo $apellidos; ?></td>
  95.   </tr>
  96.   <tr>
  97.     <td colspan="4">Telefono</td>
  98.     <td colspan="3" align="left"><?php echo $telefonos; ?></td>
  99.   </tr>
  100.  
  101.   </table>
  102. <div>
  103. <?php 
  104. if($carro){
  105. //si el carro no está vacío,
  106. //mostramos los productos 
  107. ?>
  108. <table width="502" border="0" cellspacing="0" cellpadding="0" align="center">
  109. <tr bgcolor="#333333" class="tit"> 
  110. <td width="97" align="center">Cantidad </td>
  111. <td width="62" align="center">Ref</td>
  112. <td width="260" align="center">Descripci&oacute;n</td>
  113. <td width="83">Precio Unitario</td>
  114.  
  115. </tr>
  116. <?php
  117. $color=array("#ffffff","#F0F0F0");
  118. $contador=0;
  119. //las 2 líneas anteriores
  120. //sirven sólo para hacer
  121. //una tabla con colores 
  122. //alternos
  123. $suma=0;
  124. //antes de recorrer todos
  125. //los valores de la matriz
  126. //$carro, ponemos a cero la
  127. //variable $suma, en la que
  128. //iremos sumando los subtotales
  129. //del costo de cada item por la
  130. //cantidad de unidades que se
  131. //especifiquen 
  132. foreach($carro as $k => $v){
  133. //recorremos la matriz que tiene
  134. //todos los valores del carro, 
  135. //calculamos el subtotal y el
  136. // total 
  137. $subto=$v['cantidad']*$v['PrecioUnitario1'];
  138. $suma=$suma+$subto;
  139. $contador++;
  140. //este es el contador que usamos
  141. //para los colores alternos 
  142. ?>
  143. <tr bgcolor="<?php echo $color[$contador%2]; ?>" class='prod'> 
  144. <td align="center"><?php echo $v['cantidad'] ?></td>
  145. <td align="center"><?php echo $v['Referencia'] ?></td>
  146. <td><?php echo $v['Descripcion'] ?></td>
  147. <td align="center"><?php echo $v['PrecioUnitario1'] ?></td>
  148.  
  149. </tr>
  150. <?php
  151. //por cada item creamos un
  152. //formulario que submite a
  153. //agregar producto y un link
  154. //que permite eliminarlos 
  155. }
  156. ?>
  157. </table>
  158. <div align="center"><span class="prod">Total de Artículos:      <?php echo count($carro);
  159. //el total de items va a ser igual
  160. //a la cantidad de elementos que
  161. //tenga la matriz $carro, valor
  162. //que obtenemos con la función
  163. //count o con sizeof 
  164. ?> </br>Todos Los Precios Incluyen IVA</span> 
  165. </div>
  166. <br>
  167. <div align="center"><span class="prod">Total: BsF.<?php echo number_format($suma,2);
  168. //mostramos el total de la variable
  169. //$suma formateándola a 2 decimales 
  170. ?></span></div>
  171. <div align="center"></div>
  172. <?php }else{ ?>
  173.  
  174. <?php }?>
  175.  
  176. </div>
  177. </body></html>
  178.  
  179. <?php
  180. $html = ob_get_contents();
  181. ob_end_clean();
  182.  
  183. $dompdf = new DOMPDF();
  184.  
  185. $dompdf->load_html($html);
  186. $dompdf->render();
  187. $dompdf->stream("cotizacion.pdf");
  188. ?>
  189.    



Nota: Meti en codigo de vercarrito.php dentro pedido.php , y con esa misma meti dentro del que genera el .pdf coloque el mismo codigo , y lo fui embelleciendo  (b)
Codigo de vercarrito.php



delphi
  1. <?php 
  2.  
  3. //Iniciamos o retomamos la
  4. //sesión
  5. if(isset($_SESSION['carro']))
  6. $carro=$_SESSION['carro'];else $carro=false;
  7. //La asignamos a la variable
  8. //$carro si existe o ponemos a false $carro
  9. //en caso contrario
  10. ?>
  11. <html>
  12. <head>
  13. <title>PRODUCTOS AGREGADOS AL CARRITO</title>
  14. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  15. <style type="text/css">
  16. <!-- 
  17. .tit {
  18.     font-family: Verdana, Arial, Helvetica, sans-serif;
  19.     font-size: 9px;
  20.     color: #FFFFFF;
  21. }
  22. .prod {
  23.     font-family: Verdana, Arial, Helvetica, sans-serif;
  24.     font-size: 9px;
  25.     color: #333333;
  26. }
  27. h1 {
  28.     font-family: Verdana, Arial, Helvetica, sans-serif;
  29.     font-size: 20px;
  30.     color: #990000;
  31. }
  32. -->
  33. </style>
  34. </head>
  35. <body>
  36.  
  37. <?php 
  38. if($carro){
  39. //si el carro no está vacío,
  40. //mostramos los productos 
  41. ?>
  42. <table width="650" border="0" cellspacing="0" cellpadding="0" align="center">
  43. <tr bgcolor="#333333" class="tit"> 
  44. <td width="48">Ref</td>
  45. <td width="126">Producto</td>
  46. <td width="107">Precio</td>
  47. <td colspan="2" align="center">Cantidad de Unidades</td>
  48. <td width="90" align="center">Borrar</td>
  49. <td width="147" align="center">Actualizar</td>
  50. </tr>
  51. <?php
  52. $color=array("#ffffff","#F0F0F0");
  53. $contador=0;
  54. //las 2 líneas anteriores
  55. //sirven sólo para hacer
  56. //una tabla con colores 
  57. //alternos
  58. $suma=0;
  59. //antes de recorrer todos
  60. //los valores de la matriz
  61. //$carro, ponemos a cero la
  62. //variable $suma, en la que
  63. //iremos sumando los subtotales
  64. //del costo de cada item por la
  65. //cantidad de unidades que se
  66. //especifiquen 
  67. foreach($carro as $k => $v){
  68. //recorremos la matriz que tiene
  69. //todos los valores del carro, 
  70. //calculamos el subtotal y el
  71. // total 
  72. $subto=$v['cantidad']*$v['PrecioUnitario1'];
  73. $suma=$suma+$subto;
  74. $contador++;
  75. //este es el contador que usamos
  76. //para los colores alternos 
  77. ?>
  78. <form name="a<?php echo $v['identificador'] ?>" method="post" action="agregacar.php?<?php echo SID ?>" id="a<?php echo $v['identificador'] ?>">
  79. <tr bgcolor="<?php echo $color[$contador%2]; ?>" class='prod'> 
  80. <td><?php echo $v['Referencia'] ?></td>
  81. <td><?php echo $v['Descripcion'] ?></td>
  82. <td><?php echo $v['PrecioUnitario1'] ?></td>
  83. <td width="39" align="center"><?php echo $v['cantidad'] ?></td>
  84. <td width="123" align="center"> 
  85. <input name="cantidad" type="text" id="cantidad" value="<?php echo $v['cantidad'] ?>" size="8">
  86. <input name="id" type="hidden" id="id" value="<?php echo $v['CodigoProducto'] ?>"> </td>
  87. <td align="center"><a href="borracar.php?<?php echo SID ?>&id=<?php echo $v['CodigoProducto'] ?>"><img src="img/trash.gif" width="12" height="14" border="0"></a></td>
  88. <td align="center"> 
  89. <input name="imageField" type="image" src="img/actualizar.gif" width="20" height="20" border="0"></td>
  90. </tr></form>
  91. <?php
  92. //por cada item creamos un
  93. //formulario que submite a
  94. //agregar producto y un link
  95. //que permite eliminarlos 
  96. }
  97. ?>
  98. </table>
  99. <div align="center"><span class="prod">Total de Artículos: <?php echo count($carro);
  100. //el total de items va a ser igual
  101. //a la cantidad de elementos que
  102. //tenga la matriz $carro, valor
  103. //que obtenemos con la función
  104. //count o con sizeof 
  105. ?></br>Todos Los Precios Incluyen IVA</span> 
  106. </div><br>
  107. <div align="center"><span class="prod">Total: BsF.<?php echo number_format($suma,2);
  108. //mostramos el total de la variable
  109. //$suma formateándola a 2 decimales 
  110. ?></span></div><br>
  111. <div align="center"><span class="prod">Continuar la selección de productos</span> 
  112. <a href="http://nombredominio.com/site/index.php">
  113. <img src="img/continuar.gif" width="13" height="13" border="0"></a> 
  114. </div>
  115. <?php }else{ ?>
  116. <p align="center"> <span class="prod">No hay productos seleccionados</span>
  117. <a href="http://dombredominio.com/site/index.php">
  118. <img src="img/continuar.gif" width="13" height="13" border="0"></a> 
  119. <?php }?>
  120. </p>
  121. </body>
  122. </html>



  • 0




IP.Board spam blocked by CleanTalk.