Convertir un HTML a PDF en CodeIgniter mediante Dompdf

Los PDF son el formato más utilizado para crear documentos en aplicaciones web. Los ficheros PDF te proporcionan una manera sencilla y amigable de descargar un montón de información en un fichero. Antes de descargar el contenido de una página web, el contenido debe ser convertido de HTML a PDF. La conversión de HTML a PDF puede realizarse de forma fácil utilizando una librería PHP.

Dompdf es una librería PHP que te ayuda a generar archivos PDF de contenido HTML. Es muy sencillo convertir contenido HTML a PDF en PHP en Dompdf. Si tu aplicación está desarrollada con CodeIgniter, puedes utilizar Dompdf para generar archivos PDF. Por eso, en este tutorial te mostraremos cómo convertir contenido HTML a PDF en CodeIgniter utilizando Dompdf.

Controlador

La función index() del controlador Welcome genera archivos PDF de contenido HTML.

  • Obtener el HTML de la vista welcome_message
  • Cargar la librería pdf de CodeIgniter para utilizar la clase Dompdf
  • Convertir contenido HTML y generar un PDF utilizando Dompdf
<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {
    
    public function index(){
        $this->load->view('welcome_message');
        
        // Get output html
        $html = $this->output->get_output();
        
        // Load pdf library
        $this->load->library('pdf');
        
        // Load HTML content
        $this->dompdf->loadHtml($html);
        
        // (Optional) Setup the paper size and orientation
        $this->dompdf->setPaper('A4', 'landscape');
        
        // Render the HTML as PDF
        $this->dompdf->render();
        
        // Output the generated PDF (1 = download and 0 = preview)
        $this->dompdf->stream("welcome.pdf", array("Attachment"=>0));
    }
    
}

Librería

Librería PDF de CodeIgniter (Pdf.php)

La librería PDF de CodeIgniter es una librería personalizada que te ayuda a convertir HTML a PDF mediante DOMPDF.

<?php defined('BASEPATH') OR exit('No direct script access allowed');

// reference the Dompdf namespace
use DompdfDompdf;

class Pdf
{
    public function __construct(){
        
        // include autoloader
        require_once dirname(__FILE__).'/dompdf/autoload.inc.php';
        
        // instantiate and use the dompdf class
        $pdf = new DOMPDF();
        
        $CI =& get_instance();
        $CI->dompdf = $pdf;
        
    }
}
?>

Librería Dompdf (/dompdf)

La librería personalizada PDF utiliza Dompdf para generar PDF. Por lo tanto, debes incluir la librería Dompd para instanciar la clase Dompdf.

Métodos útiles de Dompdf

Los siguientes métodos de Dompdf son muy útiles a la hora de convertir contenidos:

  • loadHtml(): Carga el contenido HTML
    • $str (string) – Obligatorio. Define el HTML a cargar
    • $encoding (string) – Opcional. Define la codificación
  • loadHtmlFile(): Carga contenido de un fichero HTML.
    • $file (string) – Obligatorio. Define el path a cargar.
  • Output(): Devuelve el PDF como un string.
    • $options (array) – Opcional. Define quieres habilitar la compresión en el flujo de contenido. (0|1)
  • render(): Renderiza el HTML a PDF
  • setBasePath(): Define el path para incluir CSS e imágenes externos
    • $basePath (string) – El path que utilizaremos para cargar contenido externo
  • setPaper(): Define el tamaño del papel y la orientación.
    • $size (string|array) – 'letter', 'legal', 'A4', etc
    • $orientation (string) – 'portrait' o 'landscape'

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.