Generar un archivo PDF con contenido HTML
En este artículo vamos a ver un tutorial y código de ejemplo que te permite generar fácilmente un archivo PDF con contenido HTML. Generar PDF con simple HTML es posible.
Existe una librería PHP para crear archivos PDF mediante código PHP pero es algo compleja de entender. Podéis darle un vistazo a Crear un PDF con PHP. Utilizar esta librería es muy complejo debido a que nos tenemos que amoldar a sus funciones y complementos.
En este caso, si ya tienes nociones de HTML te resultará mucho más fácil utilizar la librería DOMPDF que no es más que una librería PHP que te permite generar archivos PDFs a partir de contenido HTML, es decir, convertir código HTML en PDF.
En el ejemplo que vamos a ilustrar vamos a tener una tabla HTML con datos de usuarios y tendremos un enlace o botón que ejecuta el proceso de guardar y abrir la tabla en un PDF directamente. Tenemos una tabla estática pero podríamos hacerlo igual con una tabla dinámica obteniendo los datos de una base de datos por ejemplo.
Para implementar esto en tu sitio Web, lo primero que debes hacer es descargar la librería DOMPDF que está disponible gratis en GitHub e incluirla en nuestro proyecto o servidor.
Creamos un archivo HTML o PHP con el contenido de la tabla y el enlace que genera y abre el PDF.
Código HTML
<table width="500px" cellpadding="5px" cellspacing="5px" border="1">
<tr bgcolor="#CCCCCC">
<td>Nombre</td>
<td>Apellido</td>
<td>Email</td>
<td>Edad</td>
</tr>
<tr bgcolor="#FF9933">
<td>Antonio</td>
<td>Lopez</td>
<td>alopez@gmail.com</td>
<td>25</td>
</tr>
<tr bgcolor="#FF9933">
<td>Sergio</td>
<td>Martinez</td>
<td>sgm@gmail.com</td>
<td>47</td>
</tr>
<tr bgcolor="#FF9933">
<td>Natalia</td>
<td>Estrada</td>
<td>natty@gmail.com</td>
<td>22</td>
</tr>
</table><br/>
<a class="btn btn-primary" href="pdf.php"><i class="fa fa-download"></i> Descargar archivo PDF</a>Código PHP
Y ahora solo falta la clave del asunto, el contenido del archivo pdf.php que es el que se ejecuta tras pulsar en el botón «Descargar archivo PDF»:
<?php ob_start(); ?>
<h2>Lista de usuarios</h2>
<table width="500px" cellpadding="5px" cellspacing="5px" border="1">
<tr bgcolor="#CCCCCC">
<td>Nombre</td>
<td>Apellido</td>
<td>Email</td>
<td>Edad</td>
</tr>
<tr bgcolor="#FF9933">
<td>Antonio</td>
<td>Lopez</td>
<td>alopez@gmail.com</td>
<td>25</td>
</tr>
<tr bgcolor="#FF9933">
<td>Sergio</td>
<td>Martinez</td>
<td>sgm@gmail.com</td>
<td>47</td>
</tr>
<tr bgcolor="#FF9933">
<td>Natalia</td>
<td>Estrada</td>
<td>natty@gmail.com</td>
<td>22</td>
</tr>
</table>
<?php
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$pdf = $dompdf->output();
$filename = "ejemplo.pdf";
file_put_contents($filename, $pdf);
$dompdf->stream($filename);
?>Primero tenemos que llamar a la función ob_start() que sirve para indicar que se ha de iniciar el buffering de la salida, es decir, que debe empezar a guardar la salida en un bufer interno, en vez de enviarla al cliente. De modo que, aunque se escriba código HTML con echo o directamente fuera del código PHP, no se enviará al navegador hasta que se ordene explícitamente. O eventualmente, hasta que se acabe el procesamiento de todo el archivo PHP.
Seguidamente añadimos el código HTML o PHP que queremos añadir al archvio PDF.
En el ejemplo en funcionamiento estamos agregando HTML estático. No sería difícil acceder a una base de datos y recuperar los datos para mostrarlos en la tabla con echos.
Finalmente invocamos la clase DOMPDF y cargamos el contenido HTML que tenemos en el buffer de salida generando el archivo PDF.
Esta entrada ha sido actualizada el 26/11/2018.



Hola, soy principiante, el dompdf en donde se guarda?
Hola,
Al descargarlo se guarda en tu ordenador, en la carpeta de descargas.
Saludos
Hola buenas tardes quisiera saber que corregir ya me da el pdf pero en el archivo me manda este error… podrias ayudarme porfa amigo
Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»? in
C:\xampp\htdocs\isset\dompdf\src\Dompdf.php on line 610
Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»? in
C:\xampp\htdocs\isset\dompdf\src\Dompdf.php on line 631
Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»? in
C:\xampp\htdocs\isset\dompdf\lib\Cpdf.php on line 467
Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»? in
C:\xampp\htdocs\isset\dompdf\lib\Cpdf.php on line 474
Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»? in
C:\xampp\htdocs\isset\dompdf\lib\Cpdf.php on line 481
Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»? in
C:\xampp\htdocs\isset\dompdf\lib\Cpdf.php on line 488
Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»? in
C:\xampp\htdocs\isset\dompdf\src\Css\Stylesheet.php on line 1360
Hola,
Me gustaría poder ayudarte pero estos errores o más bien advertencias son producidas por la misma librería que ha desarrollado un tercero. Deberás ponerte en contacto con el desarrollador de DOMPDF para que pueda ayudarte mejor.
Otra solución es desactivar los errores en el servidor. Quizá desaparece.
Saludos
Cuando le doy descragar pdf , automaticamente me aparece la pagina pdf.php en el chorme
Hola, me da el siguiente error:
Fatal error: Call to a member function get_cellmap() on a non-object in /home/jcesacat/public_html/gestio/dompdf/src/FrameReflower/TableCell.php on line 37
Puedes ayudarme?
Gracias
Hola,
Me gustaría poder ayudarte pero no tengo ni idea de como corregir este error. ¿Has probado a descargar el ejemplo y ejecutarlo?
Saludos
Lo que me sucede a mi es q cuando llego a un número x de caracteres no me renderiza a pdf me lo deja como una web html. Ya he aumentado el tamaño con ini_limite hasta 1034M y nada.
Saludos espero me puedan ayudar.
Dejamos este tema abierto por si alguien supiera que puede ocurrir en este caso.
Buenas tardes!!!
Tengo DOMPDF y creo un pdf con php y datos desde la base de datos MySQL y me genera el pdf y lo puedo ver o descargar … pero solo una hoja A4 y quiero crear un PDF de 3 o mas paginas … no he encontrado ningun ejemplo.
Si me puedes ayudar te lo agradezco.
Hola,
Quizá debes buscar la forma de crear una página para DOMPDF. Quizá el siguiente enlace te puede ayudar:
https://stackoverflow.com/questions/22746958/dompdf-adding-a-new-page-to-pdf/22768573
Saludos
Alguien tiene un ejemplo con una tabla dinamica? es decir, primero se hace la consulta a la base de datos y y se genera una tabla en html. A partir de esa tabla ya creada generar el pdf
Buenas
Estoy probando DOMPDF pero tengo un problema con el tema de la paginación. No se como forzar nuevas paginas
Esta por terminar de implementar y diseñar el pdf, solo tengo lo básico, ya que como digo, estoy probandolo.
Quiero que me salga un registro por página
Tal y como esta ahora, me salen todos los registros en un PDF en una misma linea en una misma posición:
——————————————
query($sql);
while ($row = $tarjetas->fetch_array(MYSQLI_ASSOC))
{
$html=»
$row[NUM_TARJET]
«;
}
$dompdf = new Dompdf();
// instantiate and use the dompdf class
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation
$dompdf->setPaper(‘A4’, ‘landscape’);
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
?>
——————————————
a ver si me puedes echar una mano. Muchas gracias por todo
Hola,
Deberás darle un vistazo a las opciones que trae Dompdf:
https://github.com/dompdf/dompdf
Saludos
Hola Jose favor tu ayuda. Mira todo bien con la tabla solo que SIEMPRE me muestra la ultima fila en la hoja siguiente. Me gustaría que quedaran todas en la misma hoja (de manera compacta).
Saludos y gracias! Muy útil tu publicación!
Hola buenos días,
Para este tipo de ayudas que se salen de lo que hay en el blog debe enviarnos un ticket al centro de soporte y allí le indicaremos como podemos proceder:
https://www.jose-aguilar.com/soporte/
Saludos
Hola
Es posible que los datos de la tabla se ingresen al momento antes de crear el archivo pdf ?
en este código como se podría agregar la fecha actual y un numero de folio que sea diferente en cada ocasión ?
como puedo hacer para que funciones en localhost
Hola José, al descargar la librería no aparecen los archivos el archivo (“dompdf/dompdf_config.inc.php”) y falta la carpeta include.
Se agradece ayuda.
Hola, el enlace de desacarga ha sido removido en la página externa y ahora no tenemos la posibilidad de entrar al servidor para descargarlo. Si todavía está interesado puede enviarnos un email a blog@jose-aguilar.com con la petición. Saludos
hola buenas noche la libreria dompdf no contiene el archivo («dompdf/dompdf_config.inc.php»), y al probarla no tengo idea como hacerlo, soy nuevo en programacion. gracias de antemano
mta pero ahí el chiste es que se muestre en el html y mandarlo al php, MAS NO escribir el código en los 2 archivos en el php y en el html
Hola José, quería pedirte por favor si puedes poner o subir el código fuente del ejemplo.
Soy nuevo en esto y algunas cosas aun no me quedan claras.
Gracias.
Hola,
Siento decir que no es posible habilitar un enlace de descargar debido a que los archivos de la librería Dompdf son demasiado grandes. Debes descargarlos de su página oficial y luego generar tu documento con lo explicado en este post.
Saludos
Que tal amigos??
Han intentado generar un pdf a partir de una URL real??
Por ejemplo http://www.google.com?
Saludos
Hermann
Buena aportación! Existe alguna manera de descargar el pdf de manera mas rápida? Esto seria excelente….tengo una aplicación en la cual debo generar arriba de 500 pdfs y esto puede demorar algunos minutos debido a que se tarda por lo menos 15 segundos en descargar cada pdf. Si alguien pudiese ayudarme se los agradeceria
Muy bueno y fácil, me toma css desde un archivo externo, pero me surgió un problema.
Me arma el pdf pero no me da la posibilidad de grabarlo en alguna carpeta.
Gracias
Hola,
Quizá debes cambiar la siguiente linea poniendo la ruta de la carpeta:
$filename = «ejemplo».time().’.pdf’;
Saludos
hola buenas tardes, al generar el pdf me da el siguiente error;
Fatal error: Call to undefined method DOMText::getAttribute() in /home/tonotour/public_html/dompdf/src/Cellmap.php on line 555
Es por el colspan de las tablas.
tengo unas cuantas lineas de codigo parecidas a estas;
{HINVOICENO}: {ID}
{_JOMRES_BOOKING_NUMBER}: {BOOKING_NUMBER}
espero respuesta pronto.gracias
Hola,, tienes una buena web con informacion muy util, buscando por muchos lados no he podido encontrar lo que busco, quiero exportar una tabla juntocon su grafica en php ,, he visto ejemplos con librerias y crear una imagen temporal puesto que no lo he logrado aun, y he leido que no es de buena calidad,ojala me pudiaras apoyar con algun consejo o un ejemplo basico que me pudiera ayudar, ya que en la web no hay ejemplo parecido, al menos no he encontrado uno, gracias
Hola buenas tardes,
Yo creo que para tu caso deberás utilizar una librería para generar archivos PDF más potente como por ejemplo:
http://www.jose-aguilar.com/blog/tcpdf/
Saludos
Hola, gracias por la ayuda, pero tengo un problema. Tengo una especie de «Factura» con html/php que necesito pasar a pdf, pero cuando le digo al botón que me genere el archivo, la carga demora mucho y cuando al final me lo genera, me envía un archivo corrupto. Lo he tratado de abrir con el navegador y con foxit y me envía error en el archivo pdf. ¿Qué crees que podría estar ocurriendo?
Agradezco tu respuesta!.
Hola Jose! muy bueno el post,
Te hago una pregunta:
Como habría que hacer si lo que quiero convertir a PDF es lo que me devuelve un formulario de contacto?
Gracias.
Hola buenas tardes,
No sabría responderte, asi que lo dejo abierto a ver si alguien se anima a responder.
saludos
hola jose para empezar muy bueno tu post excelente te doy 1000 puntos pero tengo un problemilla como hago para cambiar la hoja es decir en tamaño y orientación…….
Pues no se si lo permite esta librería. Posiblemente tengas que implementar esta otra más completa –> TCPDF/
Hola José:
Me he bajado el dompdf y he copiado tu mismo ejemplo en mi servidor, dentro y fuera del directorio www, pero al ejecutarlo me sale este error siempre:
*****************
array ( ‘sans-serif’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Helvetica’, ‘bold’ => DOMPDF_FONT_DIR . ‘Helvetica-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Helvetica-Oblique’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Helvetica-BoldOblique’, ), ‘times’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Times-Roman’, ‘bold’ => DOMPDF_FONT_DIR . ‘Times-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Times-Italic’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Times-BoldItalic’, ), ‘times-roman’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Times-Roman’, ‘bold’ => DOMPDF_FONT_DIR . ‘Times-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Times-Italic’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Times-BoldItalic’, ), ‘courier’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Courier’, ‘bold’ => DOMPDF_FONT_DIR . ‘Courier-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Courier-Oblique’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Courier-BoldOblique’, ), ‘helvetica’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Helvetica’, ‘bold’ => DOMPDF_FONT_DIR . ‘Helvetica-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Helvetica-Oblique’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Helvetica-BoldOblique’, ), ‘zapfdingbats’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘ZapfDingbats’, ‘bold’ => DOMPDF_FONT_DIR . ‘ZapfDingbats’, ‘italic’ => DOMPDF_FONT_DIR . ‘ZapfDingbats’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘ZapfDingbats’, ), ‘serif’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Times-Roman’, ‘bold’ => DOMPDF_FONT_DIR . ‘Times-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Times-Italic’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Times-BoldItalic’, ), ‘monospace’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Courier’, ‘bold’ => DOMPDF_FONT_DIR . ‘Courier-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Courier-Oblique’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Courier-BoldOblique’, ), ‘fixed’ => array ( ‘normal’ => DOMPDF_FONT_DIR . ‘Courier’, ‘bold’ => DOMPDF_FONT_DIR . ‘Courier-Bold’, ‘italic’ => DOMPDF_FONT_DIR . ‘Courier-Oblique’, ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Courier-BoldOblique’, ), // ‘arial’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘Arial’, // ‘bold’ => DOMPDF_FONT_DIR . ‘Arial_Bold’, // ‘italic’ => DOMPDF_FONT_DIR . ‘Arial_Italic’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Arial_Bold_Italic’, // ), // ‘comic sans’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘Comic_Sans_MS.ttf’, // ‘bold’ => DOMPDF_FONT_DIR . ‘Comic_Sans_MS_Bold.ttf’, // ‘italic’ => DOMPDF_FONT_DIR . ‘Comic_Sans_MS.ttf’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Comic_Sans_MS.ttf’, // ), // ‘georgia’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘Georgia’, // ‘bold’ => DOMPDF_FONT_DIR . ‘Georgia_Bold’, // ‘italic’ => DOMPDF_FONT_DIR . ‘Georgia_Italic’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Georgia_Bold_Italic’, // ), // ‘lucida console’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘lucon’, // ‘bold’ => DOMPDF_FONT_DIR . ‘lucon’, // ‘italic’ => DOMPDF_FONT_DIR . ‘lucon’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘lucon’, // ), // ‘times new roman’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘Times_New_Roman’, // ‘bold’ => DOMPDF_FONT_DIR . ‘Times_New_Roman_Bold’, // ‘italic’ => DOMPDF_FONT_DIR . ‘Times_New_Roman_Italic’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Times_New_Roman_Bold_Italic’, // ), // ‘trebuchet’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS’, // ‘bold’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS_Bold’, // ‘italic’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS_Italic’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS_Bold_Italic’, // ), // ‘trebuchet ms’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS’, // ‘bold’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS_Bold’, // ‘italic’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS_Italic’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Trebuchet_MS_Bold_Italic’, // ), // ‘silkscreen’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘slkscr’, // ‘bold’ => DOMPDF_FONT_DIR . ‘slkscrb’, // ‘italic’ => DOMPDF_FONT_DIR . ‘slkscr’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘slkscr’, // ), // ‘silkscreen expanded’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘slkscre’, // ‘bold’ => DOMPDF_FONT_DIR . ‘slkscreb’, // ‘italic’ => DOMPDF_FONT_DIR . ‘slkscre’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘slkscre’, // ), // ‘verdana’ => // array ( // ‘normal’ => DOMPDF_FONT_DIR . ‘Verdana’, // ‘bold’ => DOMPDF_FONT_DIR . ‘Verdana_Bold’, // ‘italic’ => DOMPDF_FONT_DIR . ‘Verdana_Italic’, // ‘bold_italic’ => DOMPDF_FONT_DIR . ‘Verdana_Bold_Italic’, // ), )
Warning: file_put_contents(/home/s03196b2/public_html/Entradas/dompdf/lib/fonts/dompdf_font_family_cache) [function.file-put-contents]: failed to open stream: Permission denied in /home/s03196b2/public_html/Entradas/dompdf/include/font_metrics.cls.php on line 231
Warning: Invalid argument supplied for foreach() in /home/s03196b2/public_html/Entradas/dompdf/include/font_metrics.cls.php on line 168
Warning: Invalid argument supplied for foreach() in /home/s03196b2/public_html/Entradas/dompdf/include/font_metrics.cls.php on line 175
Fatal error: Uncaught exception ‘DOMPDF_Exception’ with message ‘Unable to find a suitable font replacement for: ‘serif» in /home/s03196b2/public_html/Entradas/dompdf/include/style.cls.php:805 Stack trace: #0 /home/s03196b2/public_html/Entradas/dompdf/include/style.cls.php(718): Style->get_font_family() #1 /home/s03196b2/public_html/Entradas/dompdf/include/text_frame_reflower.cls.php(165): Style->__get(‘font_family’) #2 /home/s03196b2/public_html/Entradas/dompdf/include/text_frame_reflower.cls.php(333): Text_Frame_Reflower->_layout_line() #3 /home/s03196b2/public_html/Entradas/dompdf/include/frame_decorator.cls.php(556): Text_Frame_Reflower->reflow(Object(Block_Frame_Decorator)) #4 /home/s03196b2/public_html/Entradas/dompdf/include/block_frame_reflower.cls.php(722): Frame_Decorator->reflow(Object(Block_Frame_Decorator)) #5 /home/s03196b2/public_html/Entradas/dompdf/include/frame_decorator.cls.php(556): Block_Frame_Reflower->reflow(Object(Block_Frame_Decorator)) #6 /home/s03196b2/public_html/Entradas/dompdf/include/block_ in /home/s03196b2/public_html/Entradas/dompdf/include/style.cls.php on line 805
****************
¿ Me podrias ayudar ?
Gracias
Muchísimas gracias. Era lo que necesitaba.
Lo mismo que Carlos se puede hacer en Java, quiero exportar una tabla de mi JSP. Gracias …
ya lo hice pero no me manda el pdf solo me manda el codigo de mi html
Que gran aporte el que das, esto es posible hacerlo con Java?.
En un JSP tengo una tabla, quisiera que con un botón esa tabla la exportara a un PDF.
Mil gracias si me puedes ayudar
que onda brother no me respondiste dime como corregir ese error de los pdf que se sale de los margenes cuando tiene textos largos dentro de una tabla la tabla se extiende podrias echarme la mano como corregir eso
saludos
te queria comentar un problema que he visto en varios como dompdf html2pdf que si tengo una tabla y el texto es largo se sale del margen del pdf como puedo hacer para q no se salga del pdf y el texto lo muestre en su respectiva columna
Espero tu ayuda
HOla buenas tardes,
No me había percatado del problema. Se me ocurre que podrías probar de añadirle anchos fijos a los td o divs y verificar si el texto se autoajusta a este tamaño fijado.
Espero que te ayude,
Saludos
Hola Jose Aguilar, muy bueno tu ejemplo!, he notado que tambien me guarda una copia del PDF en la carpeta del servidor… hay alguna manera de evitar que eso pase? y muchas gracias por tu aporte!
Hola,
NO lo he probado pero pudiera ser que quitando esta linea no se guarde:
file_put_contents($filename, $pdf);
Saludos
Estoy probando elejemplo y todo parece salir perfecto, pero cuando abro el archivo pdf me sale el siguiente error:
» Error al abrir el documento. El archivo está dañado y no puede abrirse »
¿ Cual es la posible causa ?
No sabemos pero seguramente algo te debe estar faltando. Si no muestra tu código poco podemos hacer.
Entiendo que hiciste una tabla sencilla de html pero si yo hago una carga de una base de datos, cuanod genera el archivo me dice que es corrupto o se encuentra dañado, te enviaría todo mi código pero te dejo solo el $html
$html=
‘
‘
.$lport.’
‘.$section2.’
‘.strtoupper($row[‘prod_name’]).».strtoupper($row[‘description’]).’
Ficha técnica
‘.$sigue.’
‘;
Ahora, si hago un echo $html se muestra bien, pero en el pdf no me deja abrirlo. Qué es lo que pasa en esos casos?
mira tengo este codigo pero cuando lo ejecuto em aaprece erorr
ob_start();
if($_REQUEST[‘Action’] == ‘Filepdf’){
$sort = isset($_POST[‘sort’]) ? strval($_POST[‘sort’]) : ‘ip’;
$Rset = $ObjAuditoria->get_auditoria($sort, $order);
?>
REPORTE AUDITORIA POR ADMINISTRADOR
IP
TIEMPO
USUARIO
PROCESO
load_html(ob_get_clean());
$dompdf->render();
$pdf = $dompdf->output();
$filename = «Auditoria_Administrativos».time().’.pdf’;
file_put_contents($filename, $pdf);
$dompdf->stream($filename);
}
?>
CUAL CREES Q SEA EL ERROR aqui estoy llamando los archivos de la bd
no lo puedo saber si no veo el error en pantalla. si nos lo facilitas, si no soy yo alguien podrá ayudarte.
hola ya entendi bien pero me podrias decir como importar las librerias. gracias
no entiendo la pregunta. Yo no importo nada. Solo utilizo la librería que no es más que una clase que incluyo de la siguiente forma:
require_once(«dompdf/dompdf_config.inc.php»);
La librería te la puedes descargar de su web oficial
Hola,
Gracias por la info y el ejemplo… es muy util..
un saludo
Hola.
He buscado varios ejemplos con dompdf pero el que pusiste realmante es muy bueno. Concreto y va al grano sin nada de vueltas.
Gracias!!!!!!!
Hola tengo un gran problema, no me funciona nada
Warning: require_once(/home/web/public_html/pagina/pluggins/dompdf-master/lib/php-font-lib/classes/Font.php): failed to open stream: No such file or directory in /home/pollatonad/public_html/pollaton-p/pluggins/dompdf-master/dompdf_config.inc.php on line 332
Fatal error: require_once(): Failed opening required ‘/home/web/public_html/pagina/pluggins/dompdf-master/lib/php-font-lib/classes/Font.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/pollatonad/public_html/pollaton-p/pluggins/dompdf-master/dompdf_config.inc.php on line 332
tengo esto: load_html($html);
$dompdf->set_paper(‘a4’, ‘portrait’);
$dompdf->render();
$dompdf->stream(«descargar_mi_pdf.pdf», array(«Attachment» => true));
?>
la ruta del require está bien. no se que pasa!!
Hola, creo que debes descargar php-font-lib, anteriormente venia cargado, descargalo de https://github.com/PhenX/php-font-lib, dentro hay una carpeta llamada src/PDFLib copiala a la ruta que te manda el error
me funciono muy bien!
a los que marca error es por que no descargaron la libreria » DOMPDF»
descarguenla y metanla en la carpeta de un proyecto! y listo.
ahora solo una duda tengo una tabla muy ancha en html y en el pdf me sale la mitad, como se ajusta a la pedida o voltear la hoja??
PD: descarguen la libreria
Hola cómo estás, es posible crear pdf con datos y elementos creador por medio de javascript, lo que pasa es que estoy creando un sistema de calificaciones y el módulo de reportes y estadísticas genera elementos del DOM con jQuery y los gráficos con google charts.
Al momento de generar el archivo no lo hace bien, sino todo el texto lo junta y las gráficas no aparecen.
me peuden ayudar por avor, muchas gracias!!!
Gracias por este excelente post, pero tengo un inconveniente necesito generar un pdf con una informacion especifica, osea si selecciono por ejemplo un usuario mostrar informacion solo de este usuario, para esto tengo un enlace que envio por GET su id, pero coloco en pdf.php la variable tomando el valor del GET y no funciona, como se podria hacer esto??? Gracias!!
Si que se puede, puedes ver en el ejemplo que he creado para comprobarlo.
Demo con base de datos
Los usuarios que se muestran en la demo son capturados de una tabla de la base de datos y al pulsar en más información creamos el pdf con más información del usuario.
Si te fijas en el link le estoy pasando un parámetro por get que en el archivo que crea el pdf lo obtengo asi : $_GET[‘id’]
espero te sirva,
Saludos,
OYE DISCULPA ESTOY HACIENDO UNA TABLA PERO NO ME ACEPTA LA COMBINACION DE CELDAS ROWSPAN, NO RESPETA LA SINTAXIS. QUE PUEDO HACER???
Me parece excelente tu herramienta, ahora bien yo manejo una hoja de estilos externa(css), que en la web si toma el estilo, pero en el archivo pdf no toma los estilos, como puedo hacer para que tambien tome los mis estilos personalizados en el archivo pdf?
*agregué la función ob_start(); en la linea 1 de mi archivo .php.
Espero pronta respuesta, de antemano muchas Gracias.
Me parece que no acepta incluir hojas de estilos. Posiblemente si a los elementos html le asignas los estilos en linea como por ejemplo:
Acabe funcionando
tengo el mismo problema de carlos ayuda ayuda
Muchas gracias, me sirvió de mucho tu ejemplo. Pero como hago para compaginarlo? Cuando el reporte es grande lo corta.
tengo una pagina con consultas a bd y unos calculos en php, pero cuando exporto a pdf el pdf me sale en blanco? donde esta mi error?
No lo se, me tendrías que pasar tu código para hecharle un vistazo.
Gracias amigo, me salvaste la vida!