• Ir al contenido principal
  • Ir a la barra lateral primaria

Luis Peris

Consultor y programador tecnológico

  • Contenido
    • Blog
    • Podcast
    • ¿Qué es?
    • Tutoriales
  • Desarrollo a medida
  • CTO Virtual
  • Formación
  • Newsletter
  • Contacto

Crear PDF desde un HTML con PHP

10 enero, 2017 por LuisPeris 27 comentarios

Todos los programadores PHP nos encontramos en alguna ocasión con el mismo problema ¿Cómo puedo pasar de HTML a PDF con PHP? Pues bien, en este artículo analizaremos una de las muchas opciones que tenemos.

Crear PDF desde HTML con PHP

Antes de continuar tenemos que darnos cuenta de algo, realmente hay mil proyectos PHP para pasar HTML a PDF, no obstante ¡Todos tienen algún problema!

Algunos no soportan CSS, otros no soportan los DIVs, otros no soportan los acentos (pensado para los americanos), etc.

Así que en esta ocasión analizaremos mPDF, una solución simples pero potente.

mPDF

Antes de continuar hay que indicar que hace dos años que los creadores abandonaron el desarrollo, no obstante, la comunidad sigue renovando el proyecto y actualizan el github mensualmente.

Así pues, lo primero que tendremos que hacer será descargar el código del proyecto PHP desde la web del creador, es código libre así que no tendréis problemas para descargarlo. No obstante, si queréis utilizar el repositorio con la última versión, podéis acceder desde este enlace (github mPDF).

¿Por qué me gusta el mPDF?

Principalmente porque he probado la mayoría que existen en el mercado y este tiene factores que hace que sea simple y potente:

  • Funciona perfectamente DIV y CSS.
  • Fácil de utilizar.
  • Soporta CSS y atributos tipo border-radius, box-shadow, etc.

¿Cómo genero el PDF?

mPDF trae un fichero de configuración, para la mayoría de casos no será necesario modificarlo, no obstante, si realizáis algún proyecto especialmente grande o complejo, quizás si que necesitéis modificarlo.

Dicho esto, para que podáis ver lo sencillo que sería generar un PDF, os muestro el siguiente código PHP:

include(«../MPDF/mpdf.php»);
$mpdf=new mPDF();

// La variable $html es vuestro código que queréis pasar a PDF
$html = utf8_encode($html);

$mpdf->WriteHTML($html);

// Genera el fichero y fuerza la descarga
$mpdf->Output(‘nombre.pdf’,’D’); exit;

 

Resumen

Como podemos observar, generar un PDF desde un HTML puede resultar muy sencillo una vez conocemos que herramienta utilizar para generarlo. En el caso de mPDF, aunque no es una herramienta extremadamente conocida, si que es muy útil. Si tienes cualquier duda o necesitas un programador PHP, puedes ponerte en contacto conmigo.

Archivado en:Programación

Quizás te interesa: Aprende a programar en 6 meses.

Interacciones con los lectores

Comentarios

  1. Alejandro dice

    11 enero, 2017 en 4:14 am

    Recién he estado revisando esta librería, y me parece excelente, muy facil y rápida para implementar. Sin embargo me genera muchas dudas acerca de cómo implementarla con el framework KumbiaPHP, pasando las respectivas variables del controlador a la vista. Si tienes algún enlace que me pueda ayudar te lo agradezco.

    Responder
    • LuisPeris dice

      11 enero, 2017 en 2:20 pm

      No me especializo en KumbiaPHP, pero supongo que tendrá una carpeta llamada «librerías» ¿No?

      Responder
    • Marcelo dice

      14 noviembre, 2017 en 2:32 am

      Hola Alejandro. Yo uso KumbiaPHP. Pudiste resolver tu problema? te invito al slack de KumbiPHP. http://slack.kumbiaphp.com/ Saludos.

      Responder
    • Joan dice

      16 diciembre, 2017 en 12:14 am

      Hola Alejandro,
      el uso de mPdf en KumbiaPHP es prácticamente igual que en php puro, no es un framework sobreingenierado.
      Pero al ser un framework MVC, ese código debe ir en el view.
      Te paso un ejemplo de un usuario:
      https://github.com/HenryMalas/Ejemplo-uso-mpdf/blob/master/default/app/views/_shared/templates/pdf.phtml
      Se puede mejorar ese ejemplo, pero es correcto.
      Solo tienes que seleccionar ese template, y crear los views, con las datos que le envias del controlador, como siempre haces.

      PD: Luis Peris prueba KumbiaPHP, es más fácil y rápido que Codeigniter.

      Responder
  2. gabriel dice

    30 enero, 2017 en 4:20 am

    como soluciono el problema con las tildes y las ñ????

    gracias

    Responder
    • LuisPeris dice

      30 enero, 2017 en 11:19 pm

      Hola Gabriel,

      Lo tienes que configurar como UTF-8, voy a lanzar un video-tutorial sobre esto ¿Quieres que te mande un email cuando esté listo?

      Responder
      • Javier dice

        8 febrero, 2017 en 5:31 pm

        Hola Luis,
        Yo si estoy muy interesado en el video-tutorial cuando lo tengas. Acabo de descubrir esta librería y me encanta!

        Responder
        • LuisPeris dice

          11 febrero, 2017 en 12:03 am

          Perfecto, te escribo en cuanto lo tenga!

          Responder
  3. Gonzalo dice

    15 febrero, 2017 en 6:30 am

    Buenas, a mi me salta el siguiente error al subirlo al hosting

    Error – mPDF requires mb_string functions. Ensure that PHP is compiled with php_mbstring.dll enabled

    Responder
    • LuisPeris dice

      14 marzo, 2017 en 11:26 pm

      ¿Qué versión tienes?

      Responder
  4. Emilio dice

    28 febrero, 2017 en 7:14 pm

    En mi localhost funciona perfecto, pero ya subido en el servidor no funciona, genera archivos corruptos, obvio nada cambio en el codigo, es lo mismo que tu tienes…
    a que se debera???

    Responder
    • LuisPeris dice

      14 marzo, 2017 en 11:26 pm

      Lo normal cuando algo falla en «linux» es que sea por cómo se llaman a los ficheros o a las carpetas ¿Está igual? ¡Un abrazo!

      Responder
  5. salva dice

    16 marzo, 2017 en 7:59 am

    Muy buenas luis, me gusta tu aporte, pero estoy intentando bajarme algun ejemplo y las librerias pero no me deja. Sabes de donde podria descargarlas o podrias pasarme algun ejemplo y las librerias.

    Muchas gracias de antemano

    Responder
  6. Luis David dice

    19 mayo, 2017 en 8:54 am

    Hola recién empece a usar mPdf, pude general el archivo el problema es que genero un reporte con una tabla de 1400 registros y en vez de generar un archivo con las paginas suficientes para que quepa toda la información, se reduce el tamaño de la tabla hasta encajar toda en una sola pagina.

    Agradezco tu ayuda.

    Responder
  7. Isabel dice

    31 mayo, 2017 en 1:08 am

    Hola, pude implementar y genera mis PDF en mi ambiente de desarrollo tengo php 5.3.28 y es windows, pero al pasarlo al ambiente de producción me genera un erro HTTP 500 y no funciona, ahí tengo php 5.1.6 y es linux, no sabes si tengo que configurar algo mas, gracias.

    Responder
  8. maldar dice

    21 julio, 2017 en 5:17 pm

    Buen dia. Uso esta libreria. Existe alguna forma de agregar marca de agua con una imagen al fondo del PDF?

    Saludos.

    Responder
    • LuisPeris dice

      20 septiembre, 2017 en 10:42 pm

      Claro, pero deberías de programarlo, que yo sepa no viene de forma nativa.

      Responder
  9. edward forero dice

    23 agosto, 2017 en 5:35 pm

    hola amigo gracias por la ayuda, subiste el video??

    Responder
  10. vladimir dice

    23 noviembre, 2017 en 5:47 pm

    Fatal error: Switch statements may only contain one default clause in ….por que me sale este error ayuda!!!

    Responder
  11. Lizz W. dice

    27 noviembre, 2017 en 9:19 pm

    Hola! yo también estoy utilizando MPDF, solo que no soy tan buena aun, me gustaría preguntarte si puedes asesorarme, mis dudas son a la hora de manejar gráficas, no las puedo visualizar en el servidor =), en local todo me funciona de maravilla pero a la hora de querer visualizarlas ya estando alojadas en el servidor me manda muchos errores!!!

    De verdad apreciaría mucho si alguien pudiera ayudarme!
    =)

    Responder
  12. Francisco Gonell dice

    10 marzo, 2018 en 12:03 am

    Luis , mpdf se puede alojar en algún hostigamiento gratuito?

    Responder
    • LuisPeris dice

      1 mayo, 2018 en 9:45 am

      ¡Sí, claro!

      Responder
  13. Francisco Gonell dice

    10 marzo, 2018 en 12:05 am

    Luis, mpdf se puede alojar en algún hosting gratuito?

    Responder
    • LuisPeris dice

      18 abril, 2018 en 10:01 am

      Sí!

      Responder
  14. Monica dice

    14 febrero, 2019 en 4:43 pm

    Hola estoy buscando la manera de generar en pdf un cuadro que esta en php y el contenido es llenado desde wordpress, puedo usar mpdf??.
    Por favor ayudaaa!!

    Responder
  15. Uciel dice

    10 septiembre, 2019 en 9:17 pm

    He realizado varios pdf con esta librería con de manera local todo funciona excelente, lo subí al servidor y me marca errores de strack tracer 0, si hay alguien que me pueda ayudar.

    Responder
  16. Evert dice

    19 septiembre, 2020 en 3:22 pm

    Hola, gracias por el artículo, pero a mí no me funciona border-radius. Alguna recomendación?

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Barra lateral primaria

¡IMPORTANTE!

Cada semana publico: 3 artículos de tecnología, 3 podcast y 2 vídeos en youtube.

Suscríbete a la newsletter y recibirás un email a la semana con todos los enlaces.

¡Suscríbete!

Un email semanal con todos los podcast, vídeos y artículos emitidos la última semana.


Te puedes borrar en cualquier momento, simplemente haz click en el enlace que encontrarás al pie de cada email.

   

Sigue mi Podcast en: