Sie sind auf Seite 1von 5

Tutorial: Convertir HTML a PDF

con PHP
PABLO JUEVES 12 DE SEPTIEMBRE DE 2013 A LAS 11:30
El formato PDF es uno de los que menos me gustan, sin embargo los utilizo
bastante y no tengo ninguna duda que es uno de los ms populares y que
muchas personas eligen a la hora de descargar contenidos de internet.
Hace unos das tuve la necesidad de convertir un documento HTML a
PDF utilizando para ello PHP. Las opciones muchas, sin embargo las que
dieron mejores resultados muy pocas.

De todas las bibliotecas gratuitas que pude probar con la que mejores
resultados obtuve fue con Dompdf. Una biblioteca PHP que se puede
descargar y utilizar de forma totalmente gratuita y sin ningn tipo de
limitaciones.
Los requerimientos:
PHP 5, aunque se recomienda utilizar la versin 5.3 o superior.
Tener habilitada la extensin MBString. Actualmente prcticamente todos
los alojamientos la tienen.
La extensin DOM (suele estar instalada, se utiliza principalmente para
la gestin de documentos XML)
Algunas tipografas. Dependiendo de esto vamos a obtener un mejor
resultado.
Instalacin:
Podemos descargar la extensin directamente desde el apartado de Github
del proyecto e incluirla mediante el uso de include(); o bien
utilizando composer:
Descarga:
git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update
Instalacin con Composer.
{
"require" : {
"dompdf/dompdf" : "dev-master"
}
}
Convertir HTML a PDF con dompdf:
<?php
require_once("dompdf_config.inc.php");

$dompdf = new DOMPDF();

$html = '<html><body>'.
'<h1>Generar un PDF con PHP</h1>'.
'<p>Desde un documentoHTML.</p>'.
'</body></html>';

$dompdf->load_html($html);
$dompdf->render();

$dompdf->stream("resultado.pdf");
?>
Con estas pocas lineas de cdigo al ejecutarse el script el navegador va a
descargar un archivo en formato PDF con el contenido indicado.
En el archivo dompdf_config.inc.php vamos a encontrar la informacin y las
opciones para personalizar y adecuar segn corresponda la forma en que la
biblioteca genera el archivo PDF.
Algunas opciones importantes:
DOMPDF_TEMP_DIR. Directorio temporal donde se genera el PDF.
DOMPDF_FONT_DIR. Directorio donde se almacenan los archivos de las
tipografas.
DOMPDF_DEFAULT_PAPER_SIZE. Tamao del papel, por defecto es
tipo Letter.
DOMPDF_DEFAULT_FONT. Tipografa por defecto.
DOMPDF_DPI. Calidad del PDF.
Guardar el archivo PDF en una ubicacin
Es muy normal que nuestro desea sea el de guardar el archivo PDF en
alguna ubicacin dentro de nuestro servidor. Inclusive se podra considerar
una buena practica ya que guardando el PDF generado evitamos al servidor
el trabajo de generar el archivo por cada solicitud.
Para lograr esto simplemente ejecutamos:
$dompdf->render();

$output = $dompdf->output();
file_put_contents("/pdfs/salida.pdf", $output);
Recuerden que la carpeta pdfs tiene que tener permisos de escritura.
Paginacin
Cuando el archivo PDF generado cuenta con ms de una pagina es una
buena idea paginar los resultados, para ello dompdf tiene la opcin de
escribir un pie de pagina de forma casi automtica.
Para ello simplemente necesitamos:
$font = Font_Metrics::get_font("helvetica", "bold");
$pdf->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}",
$font, 6, array(0,0,0));
Esas son las principales funciones de DomPDF, sin embargo esta biblioteca
es muy rica en cuanto a opciones para personalizar el resultado.
Creo que con este pequeo tutorial no tendrn problemas para generar un
PDF utilizando como base un documento HTML, no obstante cualquier
inconveniente no duden en dejar un comentario con su consulta

Das könnte Ihnen auch gefallen