Comunidad de diseño web y desarrollo en internet online

dompdf generar pdf con html,php,js mezclado

Citar            
MensajeEscrito el 19 Oct 2015 11:42 am
Hola, estoy usando el dompdf para generar un pdf de una pagina, pero hay un problema.
Esto esta hecho (supongo) para generarlo cuando la pagina es toda html, pero yo tengo html mezclado con php y javascript.
El dompdf crea el pdf basándose en el contenido de una variable php($html) y es donde todos ponen todo el html que quieren generar y a la vez se visualiza en la pagina, pero yo no puedo hacerlo así.
Al estar el html dentro una variable php, si abro php y lo vuelvo a cerrar para llamar a la BD, llamar variables, etc... estoy cerrando el fragmento php de la variable $html.

No se si me explicado muy bien. Alguien sabe como puedo hacerlo de otro modo?

Dejo un ejemplo de como funciona el domPDF:

Código HTML :

$html=' 
<img src="http://pxd.me/dompdf/www/images/title.gif"/> 

<table> 
    <tr> 
        <th>Nombre</th> 
        <th>Tipo</th> 
        <th>Imagen</th> 
        <th>Comentario</th> 
        <th>Unidades</th> 
        <th>Precio unidad</th>     
    </tr>     
</table> 
' 

Por circunsxik

32 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Oct 2015 12:55 pm
Pues no entendí ni pepa... lo siento.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Oct 2015 04:25 pm
Haber si lo se explicar mejor :cry:

Dompdf es como una libreria para que puedas generar/crear un PDF con unos datos que tienes en una pagina html. Aqui dejo un link donde lo enseñan un poco: [url=http://www.forosdelweb.com/f18/aporte-ejemplo-crear-pdf-haciendo-clic-con-dompdf-919465/][/url]

El caso es que aqui generan un pdf con los datos que hay dentro de la variable "$html", la qual ellos ponen al principio del archivo html y cierran al final, asi el pdf se genera de toda la pagina. Porque es lo que hay dentro de la var "$html"

Pero yo tengo el problema que en mi pagina hay php constantemente abriendo y cerrando:
<?php funcion de lo que sea ?>

Y como la variable $html tambien esta entre <?php .... ?> me es incompatible... Joer que mal me explico :lol:

Código :

<?php 

   $html = '
   
      <?php ... AQUI HAY MAS CODIGO PHP, PERO YA ESTA ABIERTO ARRIBA ... ?>

   '

?>


Bueno si esto no se entiende, que es lo mas seguro... Lo único que quiero es que des de una pagina php, se pueda imprimir esa misma pagina tal y como se ve en el navegador, en un documento pdf y se guarde en el pc del usuario, o haya la opción para poder guardarlo donde quiera.
Es que puede que me haya complicado la vida con dompdf y haya algo mas sencillo para hacer esto :o

Un saludo!!

Por circunsxik

32 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Oct 2015 12:16 pm
Creo haber entendido cuál es el problema.

Necesitas que la salida de PHP junto al código HTML pase a una variable PHP pero has visto que no se puede ejecutar código PHP en el contexto de una variable.

Y necesitas esto porque el plugin que estás usando así lo requiere.

Pues me parece que la solución a tu problema es usar la combinación de estas tres funciones de PHP: ob_start() ob_get_contents() y ob_end_clean().

Te muestro un ejemplo de cómo sería:

Código PHP :

<?php
ob_start();
?>
<p>Inicio de la salida</p>
<?php
echo '<p>Esto es código PHP ejecutándose</p>';
?>
<p>Fin de la salida</p>
<?php
$html = ob_get_contents();
ob_end_clean();
// Todo el código de la página está ahora en la variable $html
?>


Pruébalo y nos cuentas cómo te fue.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Oct 2015 06:07 pm

DriverOp escribió:

Creo haber entendido cuál es el problema.

Necesitas que la salida de PHP junto al código HTML pase a una variable PHP pero has visto que no se puede ejecutar código PHP en el contexto de una variable.

Y necesitas esto porque el plugin que estás usando así lo requiere.

Pues me parece que la solución a tu problema es usar la combinación de estas tres funciones de PHP: ob_start() ob_get_contents() y ob_end_clean().

Te muestro un ejemplo de cómo sería:

Código PHP :

<?php
ob_start();
?>
<p>Inicio de la salida</p>
<?php
echo '<p>Esto es código PHP ejecutándose</p>';
?>
<p>Fin de la salida</p>
<?php
$html = ob_get_contents();
ob_end_clean();
// Todo el código de la página está ahora en la variable $html
?>


Pruébalo y nos cuentas cómo te fue.


Ohh sii!! Genial! Ahora se crea el PDF y lo guarda como quería, pero ahora hay otro problema... :(

En el PDF creado todo lo que son datos sacados con php, consultas, etc... no salen. En el PDF salen todos los errores tipicos de php:

Notice: Undefined index: idProjecte in C:\Users\jcirc\Dropbox\JORDI\WWW\projecte.php on line 14
Notice: Undefined index: ref in C:\Users\jcirc\Dropbox\JORDI\WWW\projecte.php on line 15
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\Users\jcirc\Dropbox\JORDI\WWW\projecte.php
on line 46

etc... etc... etc...

Y tengo unas tablas que se crean con consultas en la bd y es lo que me interesa que salga en el pdf.

Tienes idea de porque pasa esto?

Por circunsxik

32 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Oct 2015 07:25 pm
Bueno, eso escapa a la pregunta original. Esto que comentas ahora son errores que no tienen nada que ver con dompdf o la solución que expliqué.

Si sabes PHP, vas a poder resolverlos aunque te aconsejo que primero resuelvas esos errores sin mandar todo a PDF y cuando tengas en tu navegador lo que realmente quieres convertir a PDF, entonces usa dompdf.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Oct 2015 10:04 pm

DriverOp escribió:

Bueno, eso escapa a la pregunta original. Esto que comentas ahora son errores que no tienen nada que ver con dompdf o la solución que expliqué.

Si sabes PHP, vas a poder resolverlos aunque te aconsejo que primero resuelvas esos errores sin mandar todo a PDF y cuando tengas en tu navegador lo que realmente quieres convertir a PDF, entonces usa dompdf.


Jajaja lo se lo se... Aprovecho que sabes de que va el tema ya :lol:
Pero es que la pagina funciona perfectamente, todo el php y todo va perfecto, pero al crear el pdf y al abrirlo, dentro del pdf salen estos errores... No se si es que al crear el pdf no encuentra o no se conecta con la bd... por los errores que da... Pero como lo miro si mi pagina va perfecto :oops:

Es que esto me pasa por no saber usar el dompdf...

Por circunsxik

32 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Oct 2015 12:12 pm
Lo lamento. Sin poder probarlo yo mismo, no puedo ayudarte.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Oct 2015 12:48 pm

DriverOp escribió:

Lo lamento. Sin poder probarlo yo mismo, no puedo ayudarte.


Ya esta, lo acabo de solucionar. El problema estaba en que esta pagina se cargaba con unos parámetros pasador por la url (GET) y al crear el pdf el dompdf solo carga la pagina sin el ?ej1=a..... que le sigue, y entonces fallaba el php por falta de estos parámetros.
Así que ya esta solucionado!

Gracias DriverOp y un saludo!!

Por circunsxik

32 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Oct 2015 12:06 pm
Me alegro que hayas podido solucionarlo. Un saludo.

Por DriverOp

Claber

2510 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.