Creacion de archivos PDF en PHP con DOMPDF

18.07.07

Muchas veces cuando mostramos información por pantalla como cotizaciones, informes, documentos, etc. nos gustaría que nuestros clientes y/o usuarios tuvieran el resultado en archivos sean WORD, EXCEL O PDF.

PDF es nuestro caso es el archivo que nos interesa puesto que es uno de los formatos más utilizados ya que la información contenida en ella no se puede alterar, para crear dichos archivos y buscando un poco por la web y con ayuda de san google he encontrado una herramienta que nos servirá mucho en la solución de este problema entre las muchas que hay pero con diferencia que DOMPDF provee soporte para la creación de archivos PDF sobre archivos html con estilos(css) pero no todas las propiedades, no acepta posiciones flotantes ni relativas entre otras, para saber que propiedades son aceptadas y cuales no revisa en siguiente link

Bueno empecemos, primero lo primero nos bajamos la ultima versión del DOMPDF,que ahora se encuentra en la versión 0.5.1 para utilizarlo requerimos de php 5 o superior con la extensión DOM habilitada.

Una vez descargado el paquete procedemos a descomprimirlo en nuestra carpeta web y nos centramos en el archivo dompdf_config_inc.php, este archivo contiene todas las especificaciones básicas con las cuales se creará el archivo PDF se recomienda dejar tal como esta a continuación detallo las más importantes

define("DOMPDF_DIR", realpath(dirname(__FILE__)));
/*El directorio donde se encuentra DOMPDF */

define("DOMPDF_INC_DIR", DOMPDF_DIR . "/include");
/* Directorio de los archivos Inc */

define("DOMPDF_LIB_DIR", DOMPDF_DIR . "/lib");
/* Directorio de las Librerías */

define("DOMPDF_FONT_DIR", DOMPDF_DIR . "/lib/fonts/");
/* Directorio donde se encuentran los Tipos de Letras(fuentes)*/
/*con las que se creara el archivo, mas adelante insertaremos*/
/*nuestras propias fuentes al PDF */

define("DOMPDF_ENABLE_PHP", true);
/* Esta opción permite crear */
/*archivos PDF a través de paginas PHP */

Bueno luego de visto el archivo de configuración procedemos a crear nuestro primer script PHP

PDF desde una Url Html

<?php
/* Incluimos el archivo de configuracion */
require_once("dompdf/dompdf_config.inc.php");

/* creamos un nuevo objeto */
$dompdf = new DOMPDF();

/* Llamamos a nuestro archivo html */
/* a través del método "load_html_file" */
$dompdf->load_html_file("http://www.inventa-design.com/
blog/wp-content/uploads/2007/07/prueba.html");
$dompdf->render();
$dompdf->stream("prueba.pdf");
?>

Al ejecutar el archivos nos aparecerá una ventana para descargar el archivo PDF, nos podemos dar cuenta lo fácil que es crear el archivo y que se muestra con los estilos indicados

PDF desde Codigo Html

<?php
/* Incluimos el archivo de configuracion */
require_once("dompdf/dompdf_config.inc.php");

$html = '<html><head>
<title>Prueba 2</title>
<style type="text/css">
body{
margin: 15px 40px;
}
table th{
background-color:#333333;
color:#CCCCCC;
}
table{
border-collapse:collapse;
border:#c0c0c0 solid 1px;
}
table td{
text-align:center;
}
p{
text-align:justify;
}
h2{
color:#003366;
border-bottom:#003366 solid 3px;
}
</style>
</head>
<body><h2>Prueba 2</h2>
<br /><br />
<table border="0" align="center" >
  <tr><th>header1</td><th>header 2 </td><th>header3</td></tr>
  <tr><td>1</td><td>2</td><td>2</td></tr>
  <tr><td>3</td><td>5</td><td>5</td></tr>
  <tr><td>6</td><td>5</td><td>8</td></tr>
  <tr><td>4</td><td>8</td><td>5</td></tr>
  <tr><td>6</td><td>8</td><td>9</td></tr>
  <tr><td>1</td><td>2</td><td>3</td></tr>
</table>
<br />
<p>Lorem ipsum dolor sit amet, consectetuer
adipiscing elit.  Phasellus nec leo. Pellentesque
ac diam quis urna elementum dignissim.
Maecenas sit amet risus. Aliquam orci. Vivamus
lacinia mauris ac ipsum. Nullam sagittis odio non
mi. Praesent dictum arcu vel nisi. Praesent urna
dolor, aliquet ut, pulvinar nec, eleifend vel, nisi.
Sed eget odio imperdiet dolor aliquam cursus.
Ut facilisis auctor est. Nam dictum sagittis orci.
Praesent dapibus tempus dui. Donec aliquet,
risus at vulputate dictum, dui eros congue elit,
quis hendrerit elit purus et ligula. Curabitur
condimentum. Nunc semper dolor laoreet purus.
Fusce urna nunc, scelerisque eu, sagittis sit
amet, pellentesque malesuada, magna.
Vestibulum magna mauris, rutrum quis,
fringilla id, varius a, lectus.</p>
</body>
</html>
';

/*creamos un nuevo objeto */
$dompdf = new DOMPDF();
/*Con el método "load_html" cargamos nuestro código HTML */
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("prueba.pdf");
?>

Ahora bien los ejemplos que he puesto nos crea archivos estáticos, es decir siempre serán los mismos ahora bien podemos crear dinamismo usando el modo anterior con lenguaje php y el resultado setearlo a la variable “$html”, otra opción es utilizar la función load_html_file ya que para nuestra suerte DOMPDF crea archivos también desde paginas PHP

Definiendo Margenes

Cuando abrimos o descargamos el archivo del ejemplo 1 te abras dado cuenta que el texto esta muy pegado a los bordes de la pagina que no ocurre en el ejemplo 2, la diferencia radica en que hemos utilizado estilos para definir margenes al documento.

body{
/* Margen de 20px a cada lado */
margin: 20px;

/* Margen de 15px arriba y abajo,
margen de 40px a los costados */
margin: 15px 40px;

/* Margenes Detallados*/
margin-top: 10px;
margin-left: 15px;
margin-right: 20px;
margin-bottom: 30px;
}

Creando Cabecera y Pie de Pagina

Ahora bien muchas veces necesitamos mostrar el logo de la compañía como cabecera y el contacto, dirección y/o ubicación como pie de pagina,no podemos hacerlo creando paneles flotantes o fijos pues DOMPDF no soporta ese tipo de estilos para ello usaremos el objeto “$pdf” que se crea en el momento de ejecución

<?php
/* Incluimos el archivo de configuracion */
require_once("dompdf/dompdf_config.inc.php");

$html = '<html><head>
<title>Prueba 2</title>
<style type="text/css">
body{
margin-top:120px;
margin-left:40px;
margin-right:40px;
margin-bottom:40px;
}
table th{
background-color:#333333;
color:#CCCCCC;
}
table{
border-collapse:collapse;
border:#c0c0c0 solid 1px;
}
table td{
text-align:center;
}
p{
text-align:justify;
}
h2{
color:#003366;
border-bottom:#003366 solid 3px;
}
</style>
</head>
<body>
<script type="text/php">
$header=$pdf->open_object();
$font = Font_Metrics::get_font("verdana", "bold");
$texto = "Google INC. 1600 Amphitheatre Parkway Mountain
 View CA 94043";
$hpagina = $pdf->get_height();
$wpagina = $pdf->get_width();
$wtexto = Font_Metrics::get_text_width($texto, $font, 14);
$pdf->image("http://www.google.com.pe/intl/en_com/
images/logo_plain.png", "png", 40, 40, 200, 80);
$pdf->page_text($wpagina/2 - $wtexto/2, $hpagina-50, $texto,
$font, 14, array(0,0,0));
$pdf->page_text($wpagina/2 , $hpagina-35, "{PAGE_NUM}" ,
 $font, 14, array(0,0,0));
$pdf->close_object();
$pdf->add_object($header, "all");
</script>
<h2>PDF con Header y Footer :</h2>
<br /><br />
<table border="0" align="center"
cellpadding="0" cellspacing="0">
  <tr>
	<th>header1</td>
	<th>header 2 </td>
	<th>header3</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>2</td>
  </tr>
  <tr>
    <td>3</td>
    <td>5</td>
    <td>5</td>
  </tr>
  <tr>
    <td>6</td>
    <td>5</td>
    <td>8</td>
  </tr>
  <tr>
    <td>4</td>
    <td>8</td>
    <td>5</td>
  </tr>
  <tr>
    <td>6</td>
    <td>8</td>
    <td>9</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>
<br />
<p>
<?php
for($a=1;$a<=50;$a++){
echo "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
 In diam magna, tempus id, mattis at, nonummy";
}
?>
</p>

</body>
</html>';
/*creamos un nuevo objeto */
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("prueba.pdf");
?>

Explicamos un poco el codigo

/* Aqui definimos los margenes de la pagina*/
/* Para que el texto no se cruce con la imagen */
/* de la cabecera ni con el pie de pagina */
body{
margin-top:120px;
margin-left:40px;
margin-right:40px;
margin-bottom:40px;
}

/*abrimos el objecto*/
$header=$pdf->open_object();

/* seleccionamos el tipo de fuente
ya instalada en DOMPDF */
$font = Font_Metrics::get_font("verdana", "bold");

/* Estas funciones nos recuperan
el ancho y altura de la pagina */
$hpagina = $pdf->get_height();
$wpagina = $pdf->get_width();

/* Esta función nos devuelve el ancho del texto de */
/* pie de pagina según su fuente y su tamaño */
$wtexto = Font_Metrics::get_text_width($texto, $font, 14);

/* El metodo "image" nos colocara una imagen en la pagina */
/* los parametros son la url, el tipo de imagen */
/* posicion x, posicion y, ancho y altura */
$pdf->image("http://www.google.com.pe/intl/en_com/
images/logo_plain.png", "png", 40, 40, 200, 80);

/* con "page_text" añadimos texto en la pagina */
/* para centrarlo restamos la mitad de ancho */
/* de la pagina menos la mitad del ancho del texto */
/* array(0,0,0) es el valor del color */
$pdf->page_text($wpagina/2 - $wtexto/2, $hpagina-50, $texto,
$font, 14, array(0,0,0));

/* PAGE_NUM nos devuelve el numero de pagina actual */
$pdf->page_text($wpagina/2 , $hpagina-35, "{PAGE_NUM}" ,
 $font, 14, array(0,0,0));

/* cerramos el objecto */
$pdf->close_object();

/* añadimos lo anterior a todas la paginas */
$pdf->add_object($header, "all");
$pdf->page_text($wpagina/2 - $wtexto/2, $hpagina-50, $texto,
$font, 14, array(0,0,0));

Asi pues ya tenemos creado el pdf y listo para descargar pero si queremos que el archivo sea interno y se guarde en el servidor? pues bueno hacemos un pequeño cambio

/*Remplazamos esta linea */
$dompdf->stream("prueba.pdf");

/* Por estas */
$pdf = $dompdf->output();

/* definimos la path de  destino */
file_put_contents("prueba_interna.pdf", $pdf);

Con todo esto ya esta completamente listo el poder crear archivos PDF dinámicos solo faltaría el poder darle un toque personal a nuestro PDF insertando nuestras propias fuentes para eso nos bajamos Ttf2Pt1 que convertira nuestra tipografia TrueType a Postscript type-1., para el próximo ejemplo he utilizado la tipografía Only When I Do Fonts

Una vez descargado e instalado el ttf2pt1 procedemos a ejecutarlo en modo de comando, ejecutamos la sentencia “ttf2pt1 -bA “c:\onlywif_.ttf” o “ttf2pt1 -bGA “c:\onlywif_.ttf” esto nos creara 2 archivos en la direccion donde se encuentra nuestra fuente en este ejemplo la unidad “c:”

cmd_dompdf.JPG

Copiamos los archivos generados a la carpeta fonts de DOMPDF

dirfont.jpg

Luego procedemos a abrir en la misma carpeta el archivo “dompdf_font_family_cache” y “dompdf_font_family_cache.dist” al abrirlo nos damos cuenta que contiene un grupo de arrays con los nombres de las fuentes que se encuentra actualmente y que a su ves esta contenido en un array general lo unico que haria falta es crear un arreglo con el nombre de nuestra fuente

'onlywif_' =>
  array (
	'normal' => DOMPDF_FONT_DIR . 'onlywif_',
    'bold' => DOMPDF_FONT_DIR . 'onlywif_',
    'italic' => DOMPDF_FONT_DIR . 'onlywif_',
    'bold_italic' => DOMPDF_FONT_DIR . 'onlywif_',
  )

Luego de añadido el arreglo en los dos archivos procedemos a probarlo con el siguiente ejemplo

<?php
/* Incluimos el archivo de configuracion */
require_once("dompdf/dompdf_config.inc.php");

$html = '<html><head>
<title>Prueba 2</title>
<style type="text/css">
body{
margin-top:120px;
margin-left:40px;
margin-right:40px;
margin-bottom:40px;
}

h1{
color:#003366;
border-bottom:#003366 solid 3px;
font-family:onlywif_;
}
p{
text-align:justify;
}
</style>
</head>
<body>
<h1>Probando Fuente</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
In diam magna, tempus id, mattis at, nonummy</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
In diam magna, tempus id, mattis at, nonummy</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
In diam magna, tempus id, mattis at, nonummy</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
In diam magna, tempus id, mattis at, nonummy</p>
</body>
</html>';

/*creamos un nuevo objeto */
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("prueba.pdf");
?>

Para utilizar la fuente hemos utilizado estilos la propiedad font-family y el nombre de la fuente

font-family:onlywif_;

Con todo esto ya podemos crear archivos PDF sin mucho problema así que si tienes consejos o preguntas házmelo saber a través de los comentarios.

escrito en la(s) Categoria(s) : php

98 Comentarios

  1. jorge

    hola, una pregunta sobre tu tema, este dompdf lo tienes bajo linux o bajo windows ??? yo lo descarge pero no puedo hacerlo funcionar bajo windows, no logro darle la configuracion necesaria para que funcione

  2. Ricky

    Hola yo tampoco puedo hacerlo funcionar.. sera porque ha sido escrito en la version 5 de php? yo tengo php version 4.3.9 y no me corre..

    si esto llega a funcionar seria genial, fantastico! ;) saludos y por favor, escribeme avisandome si tienes alguna solucion.

  3. cainzer0

    Uno de los requerimientos de DOMPDF es que necesita tener php5 o superior ademas de contar con la opción de DOM habilitada, jorge no tiene nada que ver que este en windows o en linux pq al final es una aplicación web si tienes problemas fíjate si tu servidor apache con php este bien configurado ademas que este en la versión 5 o superior con la opción DOM habilitada

  4. Mario

    Hola,

    genial post sobre esta clase tan util.

    Tengo un problemilla a ver si me podriais echar una mano:

    cuando utilizo el “new_page()” y escribir, el texto no se coloca al comienzo de esta nueva pagina. Por que puede ser? no estoy utilizando CSS.

    Gracias

  5. Erick Reyes

    Me sirve hasta cierto punto, por ejemplo, cuando hago una tabla pequena sirve pero cuando ya le pongo mas filas se totea y me sale este error;
    “Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1572864 bytes) in C:\wamp\www\dompdf\lib\class.pdf.php(2219) : eval()’d code on line 5914″
    Creo que debe tener un limite de caracteres? Como le aumento?

  6. anais

    hola, tengo un problema para crear el pdf con 2 op paginas osea el contenido esta bien pero solo aparece an una pagina y queiro que el contenido se distribuya en varias segun el tamaño que le nvio desde le html, como lo soluciono

  7. cainzer0

    Primeramente gracias por sus comentarios y disculpen si contesto después de tiempo estoy muy ocupado últimamente

    Mario para colocar contenido en una nueva pagina puedes aplicar los siguientes estilos:

    page-break-before:always
    page-break-after:always
    page-break-inside:always

    para los elementos que quieres desplazar a una nueva pagina

    o también usar new_page dentro del contenido colocando de de la siguiente forma

    $html = “Maecenas sit amet risus. Aliquam orci. Vivamus
    lacinia mauris ac ipsum. Nullam sagittis odio non
    <script type=’text/php’>
    $pdf->new_page();
    </script>
    mi. Praesent dictum arcu vel nisi. Praesent urna”

    Erick Reyes el problema que presentas es muy común y se debe a la configuración del php.ini específicamente en los siguientes campos

    max_execution_time = 30
    max_input_time = 60
    memory_limit = 80M

    Aumentando el tamaño puedes solucionar el problema ademas trata que tus tablas esten muy bien hechas sin exagerar el numero de columnas y filas ya que la libreria trabaja con DOM y esto hace que se efectúen muchos procesos

    Anais lo puedes solucionar colocando margenes a la pagina a través de estilos los datos enviados a la librería crean automáticamente la distribución de las paginas

    Saludos

  8. RonaldVenezuela

    Gracias por el post
    Buenas tardes he echo paso por paso pero a la hora de correr el archivo php me da un error en el servidor y el apache se cierra. Que crees que pueda ser?
    Ahhh Cuando descargo el archivo dompdf y lo descomprimo lo crea en una carpeta llamada dompdf-0.5.1 yo lo renombro como dompdf y busco en todos los archivos internos donde aparezca dompdf-0.5.1 y los cambio por dompdf.
    Espero contar con tu ayuda

  9. cainzer0

    Que error te da?, puede ser que sea por un bug en el apache tal vez necesites actualizarlo, tal vez estés usando de forma incorrecta algunos bucles, revisalo y me dices.

    http://tinyurl.com/2dwqks

  10. maykel

    Hola a todos/as.
    Recientemente he instalado Dompdf y parece ser que va medio que. Es decir, no tengo problema a la hora de convertir ficheros html pequeños, pero ocurre que convirtiendo un fichero html a pdf, que contiene una tabla de 10 filas, me devuelve el siguiente error:

    “Fatal error: Uncaught exception ‘DOMPDF_Exception’ with message ‘Min/max width is undefined for table rows’ in /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/table_row_frame_reflower.cls.php:89 Stack trace: #0 /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/frame_decorator.cls.php(390): Table_Row_Frame_Reflower->get_min_max_width() #1 /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/frame_reflower.cls.php(172): Frame_Decorator->get_min_max_width() #2 /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/frame_decorator.cls.php(390): Frame_Reflower->get_min_max_width() #3 /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/cellmap.cls.php(467): Frame_Decorator->get_min_max_width() #4 /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/cellmap.cls.php(359): Cellmap->add_frame(Object(Inline_Frame_Decorator)) #5 /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/cellmap.cls.php(359): Cellmap->add_frame(Object(Table_Row_Group_Frame_D in /home/profe/websites/matrera/drupal/mislibrerias/dompdf/include/table_row_frame_reflower.cls.php on line 89.”

    Tengo PHP5 y en el php.ini tengo el límite a 128M, así que ya no se me ocurre a que puede ser debido ésto.
    A ver si alguien tiene alguna idea.
    Gracias por adelantado.

  11. cainzer0

    Creo que tu problema no tiene que ver con memoria ni con la versión de tu php, debe haber algo en tu código que hace que realice una acción por la cual no esta declarando o no esta tomando un valor de una variable necesaria para dompdf, te podría ayudar si me mandas el código para poder chekear pq no podría decirte a ciencia cierta que esta haciendo mal.

    Ademas por experimentos propios creo que dompdf es un poco lento y poco funcional para dar pdfs bastante extensos, tratare de colocar un tutorial de otra herramienta mejor

    Podéis enviarme el código(no spam :( ) a emendoza@inventa-design.com

    Saludos

  12. Carlos Karle

    Hola: he intentado utilizar dompdf pero no he logrado hacer ningun pdf, ni con los ejemplo de esta pagina. El servidor de apache se “cuelga”. (utilizo xampp php 5.x) y debo reiniciarlo.

    Buscando descubri que esto ocurre cuando llega a la linea 410 de dompdf.cls.php dentro de include :
    $this->_pdf = Canvas_Factory::get_instance($this->_paper_size, $this->_paper_orientation);
    hasta la linea anterior llega, he utilizado die; para ver hasta donde llegaba. Alguna idea? agradeceria ayuda a la brevedad, ya que tengo que entregar un trabajo.

    Gracias.

  13. Carlos Karle

    Ya resolvi el problema a medias, en el servidor me faltaba derechos en la carpeta font dentro de lib. Solucionado. ahora, para probarlo en mi pc alguien sabe como solucionar esto? tenxo XP y xampp y no se como darle derechos a la carpeta.
    Gracias

  14. Carlos Karle

    Otra consulta: estooy generando el pdf desde un php, pero me el siguiente error:
    Fatal error: Call to a member function get_cellmap() on a non-object in /home/sitio/public_html/dompdf/include/table_cell_frame_reflower.cls.php on line 64

    el php genera un reporte con bastantes datos , codigo javascript (no se si sera eso el problema)

    Gracias.

  15. Gabriel

    Hola yo tengo un problema cuando genero el pdf desde un php me sale este error pero no le entiendo me podrías ayudar gracias. Unable to stream pdf: headers already sent

  16. yeni

    Hola, tengo el mismo problema que Gabriel.
    Al ejecutar el código de prueba me da este error “Unable to stream pdf: headers already sent”

    Gracias.

  17. pizzakiller

    Para grabriel y yeni ese error es porque no se puede mandar a escribir nada junto con el pdf es como cuando usas el redireccionamiento en php header(location…) si se manda algo a la salida genera un error..

  18. Ram

    muy bueno la guía pero tengo problemas cuando quiero trabajar con paginas dinámicas con base de datos tengo este error
    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\AppServ\www\monitor07\ZZZprueba.php on line 1141
    quisas me puedas ayudar en lalinea se encuentra este campo
    $zfe=$rowausen['fecini_ause'];
    espero me puedas ayudar

  19. WillyBilly

    Excelente! Muy bien explicado, me ha servido mucho! En especial lo de cabecera y pie de página, Salu2!

  20. Jordi

    Hola, existe la posibilidad de guardar-lo i tambien sacarlo por stream a la vez? Gracias

  21. astrid

    hola soy estudiante del ultimo semestre en informatica, estoy desarrollando un sistema con php,dreamweaver y mysql..ya estoy por terminar, pero en estos momentos m encuentro trancada en los reportes…soy una principiante y estoy trabajando con php para los reportes en pdf…los estoy creando de modo texto..pero tengo problemas debido a que los datos aparecen unos encima de otro en algunas lineas…porq sera esto porfa el q pueda me ayude…gracias..

  22. Nany

    Hola, estuve probando tus consejos y me han funcionado bien pero tengo una inquietud acerca del PDF, es que yo necesito guardarlo automaticamente y no que me lo abra….tu sabes como puedo lograr esto…….

    Gracias

  23. Deivis

    Hola a todos, esta muy buena la libreria, lo que no logro es incrustar un swf en el PDF alguien me puede ayudar con esto si se puede.
    Muchas Gracias.

  24. merlinalove

    Excelente!! Muy útil!! Gracia por compartirlo!!!!

  25. Jaam

    Muy bueno el tutorial. Me ha servido de mucho pero tengo un pequeño problema a la hora de que el encabezamiento me salga en cada una de las páginas. El pie me sale sin problemas pero el encabezamiento me sale solo en la primera. Ya os contaré si consigo solucionarlo

  26. Jaam

    Bueno, ya está solucionado, el encabezamiento, como tal para que salga en la parte de arriba hay que modificar el lugar que define el sitio en el que se tiene que imprimir y ponerlo para que salga arriba del todo. Me explico:
    Esta es la linea que imprime el texto. Para que lo imprima arriba a la izquierda la variable $wpagina en lugar de ir /2 que lo colocaría en la mitad va restada por si misma y más el número de píxeles que quiero que tenga de margen izquierdo. A la variable $hpagina le he hecho lo mismo para que imprima a 20 píxeles de margen superior.
    $pdf->page_text($wpagina-$wpagina+20 , $hpagina-$hpagina+20, $texto, $font, 14, array(0,0,0));

    Esta segunda linea es la que imprime el número de página que la he dejado igual:
    $pdf->page_text($wpagina/2 , $hpagina-35, “{PAGE_NUM}” , $font, 14, array(0,0,0));

    Ahora viene el PROBLEMA. Bueno, resulta que la variable $texto es la que recoge el texto que se tiene que imprimir en el encabezamiento pero claro, no recoge html. Por ejemplo si quiero poner en el encabezado de cada hoja una tabla (html) no he encontrado forma de hacerlo. Si defino la variable fuera del script luego no me la recoge y si la defino dentro tampoco la coge. He probado llamándola desde el script con un include pero tampoco ha funcionado.
    No sé si es que me confundo en algún paso, no he entendido bien las explicaciones o simplemente es algo que no se puede hacer. Me planteo poner una imagen pero es un poco cutre. Si alguien tiene alguna idea, será bien recibida. Un saludo a todos

  27. Jaam

    Bueno, pues parece que lo de la imagen tampoco va a ser la solución. No hay forma de que se imprima la imagen de la cabecera pero no tengo este problema cuando tengo que sacar una página que contiene imágenes. Es solo el $pdf->image el que no va.

  28. Jaam

    Vemos la luz
    Bueno, pues parece ser que el hecho de que no se imprima la imagen es que en el ejemplo, el servidor que ofrece la imagen (google) rechaza la conexión, no se descarga nada, nada se imprime.
    Finalmente he conseguido que salga teniendo en cuenta:
    1. que el script tiene que ir dentro de body
    2. la imagen tiene que ser png
    3. la cosa me ha quedado así:

    $header=$pdf->open_object();
    $pdf->image(”http://localhost/www1/images/logo.png”, “png”, 40, 40, 200, 80);
    $pdf->close_object();
    $pdf->add_object($header, “all”);
    ‘.
    Y FUNCIONAAAA!

  29. Silver

    Hola estoy trabajando en posgres y descargue y probe el dompdf y me funciono , pero al intentar convertir un archivo llamado imprimir.php me sale ste error

    Warning: require_once(../Connections/upacolombia.php) [function.require-once]: failed to open stream: No such file or directory in G:\AppServ\www\upacolombia\pdf\dompdf\include\dompdf.cls.php(278) : eval()’d code on line 1

    espero me puedan ayudar, gracias

    Fatal error: require_once() [function.require]: Failed opening required ‘../Connections/upacolombia.php’ (include_path=’.;C:\php5\pear’) in G:\AppServ\www\upacolombia\pdf\dompdf\include\dompdf.cls.php(278) : eval()’d code on line 1

    donde ../Connections/upacolombia.php es el archivo de conexion con la bd

  30. Fernando Rueda

    Hombre, a mi no me funciona la parte de las imagenes me devuelve el siguiente error.

    Notice: Undefined variable: header in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 5

    Notice: Undefined variable: pdf in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 5

    Notice: Trying to get property of non-object in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 5

    Notice: Undefined variable: pdf in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 6

    Notice: Trying to get property of non-object in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 6

    Notice: Undefined variable: pdf in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 7

    Notice: Trying to get property of non-object in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 7

    Notice: Undefined variable: pdf in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 8

    Notice: Trying to get property of non-object in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 8

    Notice: Undefined variable: header in /usr/local/apache/htdocs/comfenalco/php-pdf/dompdf-0.5.1/www/crearpdf.php on line 8

    no reconoce ninguna variable, hayq ue confiogurar algo mas…???

    Frueda.

  31. destrudo

    hola e provado el dompdf y es muy bueno pero necesito imprimir el documento que me genera sin mostrarlo ya logre que no lo mostrara y que solamente lo almacene en my carpeta del servidor pero necesito que se imprima si conocen alguna forma de hacerlo le agradaceria la ayuda gracias…

  32. Dbzsoft

    Hola excelente tutorial… gracias por este aporte

  33. Esteban Quiroz

    Fernando Rueda veo que has tenido muchos problemas con las imagenes, yo también los he tenido, la verdad estaba creando unas tablas en las que en algunas celdas ponía imagenes, te sugiero primero que la imagen sea pequeña (pues que no vaya a ser mas grande que la pagina del documento) porque las etiquetas de width y height no funcionan, o por lo menos a mi no me funcionan, segundo intenta con varios tipos de imagenes, dompdf acepta png, pero no todos los png, por eso recomiendo no usarlos, y no intentes simplemente copiar la imagen png y cambiarle el tipo de extension, no funcionará.

    Por último te dejo un link de una imagen que a mi si me sirvió http://www.baluart.net/UserFiles/Image/diseno_grafico/art1053/espectaculares-wallpapers-gratis.jpg
    Aquí tienes la etiqueta de la imagen de una vez

    ensaya primero poniendo esta etiqueta para que compruebes que si funciona cuando la pones en el pdf. a mi me funcionó.
    y despues te recomiendo que descargues la imagen y la pongas en tu carpeta de proyecto y la llames común y corriente como si la estuvieras llamando desde la pagina donde estás generando el pdf.

    Espero sea útil esta ayuda

  34. Esteban Quiroz

    No llegó la etiqueta, aquí está “”

  35. Esteban Quiroz

    no quiere llegar ya ustedes la agregan es una etqueta común y corriente.

  36. Fernando Rueda

    Bro…..Gracias por responder, me sirvio su ayuda, pero ahora encuentro lo siguiente …..

    si uso esta opcion “load_html_file” el me traes imganes pero no me deja insertarle datos de mi DB y esoty usando el metodo Get, pero si uso “load_html” hace lo contrario, me deja insertar datos pero no imagenes.

    pero solo me pasa el linux, en win si funciona, como hago para que funcione en Linux ???

  37. Ambrosio

    Buenos días.

    He bajado dompdf sobre S.O Windows. No consigo hacerlo funcionar.

    Este es el código que he introducido:

    load_html_file(”http://www.google.com”);
    $dompdf->render();
    $dompdf->stream(”prueba.pdf”);

    ?>

    El problema se da condo llego a la función render(), el servidor se queda pillado, i con firefox me pone algo así como que se ha reiniciado la sesión.

    No se muy bien a que se debe, en principio he pensado que pude ser problema de las fuente, no podemos hacer que tire directamenet de las que vienen preinstaldas?

    Hay algo que me dejo sin hacer? he probado tambien en php.ini a configurar los tamaños de los ficheros y tiempos de espera.

    Un saludo y gracias de antemano.

  38. Fernando Rueda

    Bro ….. otra cosa, la propiedad “load_html_file”, me da problema si la pagina contiene tablas, como hago para que las acepte ?????.

  39. Ambrosio

    Buenos días otra vez.

    Observando el código veo que se la pega en:
    $this->_pdf = Canvas_Factory::get_instance($this->_paper_size, $this->_paper_orientation);

    Es decir en el mismo class de dompdf.

    Saludos

  40. Andres

    Hola tengo un problema quiero poner una imagen de fondo del tamaño de la hoja del pdf en mi caso A4, y luego introducir textos con sus respectivos márgenes, alguien pudo hacer algo similar?? Por que me encoje la imagen de fondo y no se por que, yo creo un div con las dimensiones de la hoja A4, luego a ese div le hago un background-image y llamo a la imagen, cuando le doy crear el pdf sale bien pero solo que la imagen de fondo no ocupa todo el espacio que debiera y se disminuye su tamaño, alguna solución?? Gracias

  41. juanjo

    Tengo desarrollado un sistema el cual genera un catalogo de productos en html pero al momento de imprimir no jala porque aparecen cortadas mis tablas de algunos productos es por eso que decisdi convertirlo a pdf para controlar o de la impresion. Pero
    tengo una gran duda y es que si genera el pdf a partir de html pero tarda en compilar varios minutos ya que se trata de un catalogo de productos de 120 páginas.

    Mi hostin solo permite que comile durante 60 segundos osea que no se genera el pdf del catálogo.

    Te agradeceria grandemente que me aconsejes una solucion o una alternativa.

    Gracias de antemano.

  42. Guybrush78

    Muchas gracias por tu ejemplo cainzer0, es de mucha ayuda, porque poco hay por ahí del tema del uso del DOMPDF.

    El tema de cabecera y pie es esencial en todo informe.

    toda la parte de $pdf->page_text funciona perfectamente, hasta he puesto texto en vertical a la izquierda, pero el $pdf->image no se por que no va.

    $pdf->image(”http://192.168.0.106/Imagenes/logo_pdf.png”, “png”, 20, 20, 800, 50);

    es raro, la ruta cuando la pego en el navegador, funciona perfectamente, y la funcion no me da error de que no la encuentra, simplemente no me la muestra.

    todo lo demas funciona, solo que la imagen no me la muestra.

  43. Guybrush78

    Ah, se me olvidaba, también tengo problemas con las tildes, imprime el texto tal como está, si pongo á aparece ?, pero si pongo á sale &aacute, ¿qué se podría hacer?

    Gracias.

  44. Diseño Web Peru

    interesante Codigo gracias por la ayuda justyo lo que estaba buscando

  45. Camilo Rincon

    Hola, la libreria me funciona bien siempre y cuando el reporte este en una sola hoja en forma horizontal. pero cuando el informe pasa de una hoja tengo un error, que es el siguiente Notice: Undefined offset: 5 in /usr/local/www/apache22/data/extractos/pdf/dompdf/include/cellmap.cls.php on line 559

    Fatal error: Call to a member function get_id() on a non-object in /usr/local/www/apache22/data/extractos/pdf/dompdf/include/cellmap.cls.php on line 560.

    si alguien sabe alguna solucion para este error estaria profundamente agradecido

  46. Robe

    Hola a todos la libreria me pincha sin problemas pero estoy queriendo hacerlo un poco mas orientado a objeto creando una clase qu me construya el header y footer y despues desde el archivo html llamo a estas funciones pero me da un error con el objeto $pdf que me dice que no esta definido este es mi metodo:

    public function header($nombreDOC){
    $this->nombreDOC=$nombreDOC;
    $header= $pdf->open_object();
    $wpagina = $pdf->get_width();
    $font1 = Font_Metrics::get_font(”serif”, “normal”);
    $textoHeader = “ADUANA GENERAL DE LA REPUBLICA”;
    $wtexto = Font_Metrics::get_text_width($texto, $font, 14);
    $wdoc = Font_Metrics::get_text_width($textoDoc, $font, 14);
    $pdf->image(”images/logo-aduana.jpg”, “jpg”, 60, 20, 130, 90);
    $pdf->page_text($wpagina/2 - $wdoc/2, 30, $textoDoc, $font, 14, array(0,0,0));
    $pdf->page_text($wpagina/2 - $wdoc/2, 50, $textoHeader, $font1, 10, array(0,0,0));
    $pdf->add_object($header, “all”);
    $pdf->close_object();
    }
    espero ayuda

  47. npm

    hola CainZero weno queria consultarte donde pueso aprender sobre php me refiero a un centro de estudios ya que solo se Visual C++.
    Gracias xtu respuesta
    ahhh…!!! das clases particulares….???

  48. msn

    Hola! he probado dompdf y seguido el tutorial, pero no logro que me muestre mi pdf uso XAMPP sobre win vista y mi php es superior al 5.0, por lo que no comprendo me manda lo siguiente:

    Warning: domdocument::domdocument() expects at least 1 parameter, 0 given in C:\xampp\htdocs\semujerv2.0\dompdf\include\dompdf.cls.php on line 165

    Fatal error: Call to undefined method domdocument::loadHTML() in C:\xampp\htdocs\semujerv2.0\dompdf\include\dompdf.cls.php on line 284
    Si pudieras ayudarme gracias!

  49. redhojalata

    utilizo el script para generar una nueva pagina con el dompdf, sin embargo al crear la siguiente pagina(pag2) coloca el texto un reglon abajo y en la tercer hoja(pag3) coloca el texto 2 renglones abajo de donde se encuentra el texto de la primer hoja del documento(pag1).

    la informacion la recupero de un editor y remplazo un caracter especial por el inicio de una nueva pagina.

    gracias.

  50. gkno

    … después de estar indagando y probando entre las diferentes respuestas que dan a como hacer un reporte con más de dos páginas en pdf con dompdf, les dejo el siguiente ejemplo, espero que les sirva. Saludos!! ;)

    Constancia

    .subrayado{text-decoration:overline;}

    aaaaaaaaaaa

    aaaaaaaaaaa

    load_html($buffer1.$buffer2);
    $dompdf->render();
    $dompdf->stream(”verfactura.pdf”,array(”Attachment” => 1));

    ?>

  51. gkno

    Código :

    #
    #
    #
    # Constancia
    #
    # .subrayado{text-decoration:overline;}
    #
    #
    #
    #aaaaaaaaaaa
    #
    #
    #
    #
    # aaaaaaaaaaa
    #
    #
    #
    #load_html($buffer1.$buffer2);
    #$dompdf->render();
    #$dompdf->stream(”verfactura.pdf”,array(”Attachment” => 1));
    #
    #?>

  52. gx.system

    Fatal error: Uncaught exception ‘DOMPDF_Internal_Exception’ with message ‘Frame not found in cellmap’
    me sale este error despues de generar mas de 2 hojas con una tabla, pero si solo es 1 tabla se genera normalmente

    Saludos

  53. Jorge

    Estoy un poco desesperado y extrañado con este problema, a ver si alguien me puede dar una mano:

    He diseñado reportes basado en plantillas hechas en HTML y he devuelto valores desde PHP, el problema es que desde mi hosting pica las palabras al final del margen pero desde el local no pasa, cree una platnilla simple con texto HTML largo para evaluar y me sigue dando el mismo problema (todo esto para evitar que algo en el style o PHP me estuivese originando la falla), puedes verlo aqui http://www.solucionestoadsoft.com/plantilla_prueba.php . Si alguien tiene alguna idea de como solventarlo o exactamente a que se debe el error (porque ya estoy casi seguro qeu es algo del hosting) agradecería que me lo comunicasen. Gracias.

    P.D. Recuerdo que el mismo texto que van a ver en el URL lo arma correctamente localmente, incluso si lo copio y pego en la página del dompdf donde está el demo tambien lo hace, pero desde mi hosting pues… pica palabras sin conseguirle una razón real.

  54. Gabriel

    Hola que tal oye recientemente he estado trabajando con DOMPDF en lugar de FPDF principalmente por el soporte que dan a CSS pero tengo un problema, tengo que hacer contratos dinamicamente entonces tengo que dejar todo el texto justificado, con acentos y comillas dobles principalmente; pero surge un problema ya no respeta la justificacion intente usar entidades HTML como Á y " o incluir la etiqueta y escribir literalmente los acentos pero en ambos casos ya no respeta el atributo justify agradeceria mucho tu ayuda dado que tu pagina es de las pocas que dan soporte sobre el tema de antemano muchas gracias salu2!

  55. Carolina

    Hola. Tengo un problema con esta libreria. Creo q es el mismo problema de ASTRID, pero a ella no le respondieron.

    Uso load_html_file y genera el pdf pero dado q la pagina tiene varias tablas, una debajo de otra, en el documento pdf las imprime todas al principio de la pagina una encima de la otra.

    Por que sucede esto? Y como lo soluciono?

    Gracias

  56. Fernando

    Hola, Tengo problemas para escribir las palabras con tílde, cuando las escribo dentro del html, no tengo problemas, pero cuando lo hago desde php, me escribe el código &ecuate; en lugar de la letra con tílde. Si alguien pudo solucuinar esto, les agradecería lo compartan.

    Gracias.

  57. Hola

    Hola, mi problema con dompdf es el siguiente:

    Al generar el pdf con el formato que yo quiero, en algunas ocasiones el texto que incluyo en determinadas celdas me corta las palabras por donde le da la gana. Lo curioso es que si meto el mismo texto a pelo en la pagina demo de dompdf no me corta las palabras. Por ejemplo, el texto “Los autónomos tendrán descuentos en la cotización a la Seguridad Social”, en mi pdf me aparece como:

    “Los autónomos tendrán descuentos en la cotización a la Seguridad Soc
    ial”

    Alguien sabe que es lo que me puede estar pasando????

    Gracias

  58. pabloe9k

    Hola, perdón por molestar, pero me quedo en la primer configuración de todas.

    define(”DOMPDF_DIR”, realpath(dirname(__FILE__)));
    /*El directorio donde se encuentra DOMPDF */

    En que posición tengo que poner el directorio donde se encuentra el la carpeta DOMPDF?

    Alguna ayuda, por favor?
    Muchas gracias!!

  59. Marcelo

    Hola, bueno el tutorialy en si la herramienta dompdf, pero estoy tratando de generar un documento bastante extenso (145 pag por lo menos) y se demora una eternidad. Hay alguna solucion para eso??

  60. Alberto

    uso xampp y me marca erorres que son estos
    Warning: domdocument::domdocument() expects at least 1 parameter, 0 given in C:\xampp\htdocs\cbtis165\dompdf\include\dompdf.cls.php on line 165

    Warning: file_get_contents(http://www.inventa-design.com/ blog/wp-content/uploads/2007/07/prueba.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\cbtis165\dompdf\include\dompdf.cls.php on line 261

    Fatal error: Call to undefined method domdocument::loadHTML() in C:\xampp\htdocs\cbtis165\dompdf\include\dompdf.cls.php on line 284
    por mas que le intentado solucionarlo pero no puedo me podrian ayudar

  61. destrudo

    buenas tengo un pequeño problema estoy mostrando una tabla pero cuando sale el pdf las lineas de las tablas no me la muestra me gustaria que me proporsionaran una forma de corregir ese problema ya que la tabla la necesito con sus lineas

  62. Juan

    Hola a todos tengo un problema con el dompdf lo estoy utilizando en mi tesis y cuando intento cargar una pagina para exportarla a pdf y la misma contiene un $_GET['$valor'] me da el siguente error
    Notice: Undefined index: gg in
    C:\AppServ\www\pdf\Identificacion\Presentacion\Interfaz\dompdf\include\dompdf.cls.php(277) : eval()’d code on
    line 8

    en la linea 8 es donde esta $_GET['$valor'] que puedo hacer para arreglar esto pues despues de eso no me imprime las cosas en el pdf…
    Gracias por adelantado..

  63. Jenny

    Tengo problema con el $pdf->image cuando se trata de png o gif, solo me permite jpg, pero necesito alguno de los otros 2 formatos, para colocar una forma sobre la información, como un sello de agua, pero no quiere funcionar, hasta hace unas semanas funcionaba bien, pero no se que paso, lo unico que hubo fue un cambio del servidor, pero este esta normal.

    Alguien??

  64. Jenny

    Para destrudo la solucion es crear estilos con lo siguiente:

    table.collapse {
    border-collapse: collapse;
    border: 1pt solid black;
    font-size: 7px;
    }

    table.collapse td {
    border: 1pt solid black;
    }

    Ahora para Juan, puedes obtener las variables fuera del $html donde declares el contenido, o sea dividir en 2 el contenido.

  65. alberto

    todo bien con la clase, el unico problema es el metodo para las imagenes, nose como diantres funciona, y por mas que lo intento no logro hacerla funcionar, cada vez que la invoco me arroja el siguiente error

    Fatal error: Call to undefined method DOMPDF::image() in

    porfavor si alguien tiene alguna idea de que pues estar mal, help meeee!!!

  66. Jenny

    Por cierto me conteesto a mi misma, el problema es que no tenia configurada la libreria de GD que maneja las imágenes en php. Bueno con esto se resuelve cualquier problema de imágenes que no aparezcan correctamente.

    Alberto:
    Revisa bien que no tengas algo fuera de lugar, si vas a utilizar pdf->image(…)
    Te pongo un ejemplo de como lo uso yo.

    $html=’

    table.separate {
    border-collapse: collapse;
    border: 0pt;
    }

    table.separate td {
    }

    table.collapse {
    height: 210px;
    border: 1pt solid white;
    font-size: 9px;
    }

    table.collapse td {
    border: 1pt solid white;
    }

    body{
    margin: 0px;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    bottom: 0px;
    font-size: 2px;
    }

    $header=$pdf->open_object();
    $font = Font_Metrics::get_font(”Helvetica”);
    $hpagina = $pdf->get_height();
    $wpagina = $pdf->get_width();
    $wtexto = Font_Metrics::get_text_width($texto, $font, 14);
    $pdf->image(”BL.gif”,”gif”, 10, 12, 595, 767);
    $pdf->page_text(320 , 45, “‘.$documento.’” , $font, 13, array(0,0,0));
    $pdf->close_object();
    $pdf->add_object($header, “all”);
    ‘;

    En image puedes utilizar imagenes tipo jpg, png, y gif generalmente. Luego de esta parte tienes que colocar el cuerpo de tu html, y por ultimo cerrar el tag de

    Espero te sea de ayuda, saludos.

  67. Luis Enrique F.

    Hermano excelente tuto, me la pase dias buscando una buena clase y un buen ejemplo para lo del PDF y al fin dompdf me sirvio excelentemente hice una mescla de varias opiniones y contrui un solo script para todos los reportes q genero. Te agradesco q los dioses te hagan ma sabio para q sigas compartiendo. Ten un excelente dia!!

  68. Gerardo

    Buenas dias.
    el tutorial me agrado mucho pero cuando trato de probar los ejemplos me dice problema al cargar la pagina, La conexion a sido reiniciada y no me muestra el pdf, no e podido hacer q funcione correctamente y ya tengo mas de una semana con ese problema y me pudieran ayudar se los agradeceria mucho

  69. Yomo

    cuando quise renderizar una imagen, o con tablas anidadas me mato el servidor, anda pero con html basicos

  70. Guillermo Saavedra

    Buenas…
    estoy trabajando en un PDF con DomPdf pero al momento de generar las tablas no tego problemas pero cuando creo el PDF y este PDF contiene mas de 2 paginas que siempre es asi por el formato me arroja error, ademas los estilos se pierden justo despues de crear una linea…
    Alguno de Ustedes sabe porque pasa eso? he leido los post de mas arriba pero nada de lo que han posteado me ha resultado, desde crear los estilos y incrustar el codigo PHP

    espero su ayuda.

    PE: la direccion WEB es : http://200.63.97.25/~propied3/Cotizador/pdf/

    Saludos

    Guillermo Saavedra

  71. Marina

    Buenas, Yo tengo que gerardo, me dice que se reinicia el servidor, y no sé porque.

    La web corre sobre php5 y windowsXp, ya le he dado permiso a las carpetas.

    ¿alguna idea?

  72. operador

    He venido trabajando con dompdf, generado pdf dinamicamente para cosultas que generan no mas de 14 paginas, mas o menos 254 registros, en 20 segundos con una memoria en php de 1024, pero cuando la consulta es de mayor tamaño, 389 registro, la generacion del pdf se queda colgada.
    He intendado generando primero el archivo y luego convertirlo, tambien lo he hecho generando el pdf con la consulta y de ninguna de las dos maneras logro que se genere.

    Cual seria la mejor solucion para generar pdf con consultas que generan muchos registros?

  73. marina

    Buenas de nuevo,

    He estado poniendo die() por todas las llamadas que hace el archivo, y he encontrado que donde hace que el archivo se “cuelgue” diciendo que se ha reiniciado es en la linea 282 del archivo dompdf.cls.php, la línea pone:

    set_error_handler(”record_warnings”);

    A ver si alguno de vosotros sabéis por qué es, yo ya he perdido un par de días buscando y no se me ocurre nada.

    Gracias

  74. Gaditano

    Gente:

    Vengo luchando con la librearia.
    Conclusión: No se puede trabajar con imagenes PNG si son de tamaño medio. Solo funciona con jpg.

    Saludos

  75. Jorge

    Hola disculpa que te moleste pero fijate que soy nuevo en esto de pasar un archivo a pdf y bueno le he estado utilizando para una tarea de la U y me ha sido de mucha ayuda bueno te tengo dos preguntas primero como podes cambiar la orientacion de la pagina osea ponerla en horizontal?, y la otra porque los reportes que estoy gerando en los pdf son dinamicos y hay unos que tienen que ser mas grandes que una pagina entonces como le puedo hacer para que agrege otra pagina con el mismo formato y la continuacion de la pagina anterior? y bueno gracias de ante mano y que chevere tu blog

  76. alainccc

    quisiera si alguine tiene el dompdf me lo pudiera enviar es que eh traatdo de bajarlo y la pagina esta fuera de servicio

  77. alainccc

    ya lo pude bajar desde otro lugar gracias

  78. INGEDAY

    Buenas… estoy utilizando Dompdf, pero al generar el documento PDF de una tabla, las palabras se cortan de manera incorrecta.

    Por ejemplo:

    Forma Correcta:

    Caracteriza ecosistemas y
    analiza el equilibrio dinámico
    entre sus poblaciones.
    - Describe y relaciona los ciclos
    del agua, de algunos elementos
    y de la energía en los
    ecosistemas.

    Forma Incorrecta:

    Caracteriza ecosistemas y
    analiza el equilibrio dinámico e
    ntre sus poblaciones.
    - Describe y relaciona los ciclos
    del agua, de algunos elementos
    y de la energía en los e
    cosistemas.

    La informacion se muestra en celdas.. que podra estar pasando ???

  79. Alberto

    Estoy visualizando las pruebas con los examples que lleva incluida la libreria, y algunos dan error. He probado a ejecutarlos desde otros ordenadores y da error el PDF.

    Cosas que he visto. Las hojas de estilos no pueden tener la etiqueta bold, tampoco el HTML .
    Es necesario que al menos las etiquetas básicas de toda la vida funcionen. ¿Podeis ayudarme?

    Gracias

  80. geniutrixone

    Hola,

    he estado buscando mucho demasiado una clase que me peuda generar pdf en php….. he probado varias y ninguna me ha dado los resultados correctos…..

    un compañero de la u me dijo que él usaba dompdf asi es que busque y llegue a este foro.

    lo que necesito insertar en el pdf es texto e imagenes…estuve leyendo los comentarios y al parecer a la mayoría les ha funcionado bien, pero nadie ha comentado si se pueden poner imagenes detras del texto….asi como una marca de agua, y que el texto se vea encima….pues eso es lo que necesito hacer, ya que en el sistema web que hago actualmente, requiere mi cliente que le genere certificados que tienen texto e imagenes…y debe tener una imagen es particular como marca de agua…..

    se puede hacer eso???

    me quedo atento a los comentarios,

    saludos

  81. ausmer

    Buenas tardes.
    Alguien sabe si es posible predeterminar el tamaño oficio en lugar del tamaño carta desde el dompdf?

    Gracias

  82. liss

    Hola!!!…
    yo puedo enviarle la ruta de un archivo php que contenga html y ademas consultas de una bd y ademas esté archivo incluya otra clase php?????????????? se puede???
    please help me!!!…

  83. ausmer

    Buenas tardes. Tengo un PHP que trae mis datos en sesion en un formulario, los datos en sesion se muestran bien en el php pero cuando le digo generar el PDF me genera el PDF pero sin las variables. Estoy utilizando lo siguiente:

    load_html_file($ruta);

    $dompdf->render();$dompdf->stream(”Acta.pdf”);
    ?>
    Gracias por su ayuda

  84. krlos

    Hola espero que no sea tarde

    require_once(”dompdf/dompdf_config.inc.php”);
    $dompdf = new DOMPDF();

    //Aqui esta para cambiar la orientacion de la pagina

    $dompdf->set_paper(”letter”,”landscape”);

    $dompdf->load_html_file(”dompdf/todosUsuarios.php”);
    $dompdf->render();
    $pdf = $dompdf->output();
    file_put_contents(”./dompdf/Usuarios.pdf”, $pdf);

  85. Marcelo

    Como puedo hacer para que imprima mas de dos paginas? todo funciona perfecto,

  86. ausmer

    Para imprmir los datos dinamicamente accedo así:
    /mmisitio/libs/pdf/pdfHTML.php?doc=http://www.desarrollo-de-software.com/medicina.php?idActual=4

    load_html_file(”http://www.desarrollo-de-software.com”);

    //$dompdf->load_html_file(”http://”.$_SERVER['SERVER_NAME'].”/misitio/actamenoresedad.php”);
    $ruta=$_GET['doc'];

    $dompdf->load_html_file($ruta);

    $dompdf->render();$dompdf->stream(”Acta.pdf”);
    ?>

  87. ausmer

    krlos muchas gracias,

    $dompdf->set_paper(”legal”,”portrait”); //letter landscape cambia tamaño y orientacion de la pagina

    me funciono a la perfeccion la orientacion y el cambio de tamaño de hoja a oficio. gracias

  88. eduardo castillo

    hola amigo
    mi problema es le sig: uso el Xampp en cual es como un paquete de apache,mysql,..
    mo bronca es en donde poner la carpeta de dompdf
    ya que al llamarlo con el localhos/dompdf/www/
    me deja ver todo los ejmplos.

    pero cuando creo mis php ¡¿donde debo de colocarlos
    para poder llamarlos de un html?

    ise unas pruevas colocandoolo en la carpeta www,
    pero cuando lo llamo en html (dompdf/www/ejmplo1.php)
    me marca q en el el codigo ejemplo1.php necesita el

    require_once(”dompdf/dompdf_config.inc.php”);
    pero esta en el archivo y no me deja ejecutarlo.

    espero y me ayudes .

    gracias

  89. Alvaro

    Yo tengo appserv, php con oracle, donde respliego información desde la base y graficos con flash, esto tendrá algún problema? se pueden capturar los graficos en flash.

    Gracias.

  90. Gabi

    Existe un límite de paginas que puedo generar con el dompdf??? porque cuando le mando para imprimir mas de diez páginas me tira este error:

    Warning: file_put_contents(/opt/lampp/htdocs/pruebadompdf/lib/fonts/php_Times-Roman.afm) [function.file-put-contents]: failed to open stream: Permiso denegado in /opt/lampp/htdocs/pruebadompdf/lib/class.pdf.php on line 2354

    gracias

  91. Luis Marquez

    Excelente aporte. Gracias

  92. Julio

    Amigo, tengo problemas para instalar una fuente y utilizarla con el dompdf, hago los pasos y me genera los archivos .afm y el .pfb agrego en archivo de arrasy la fuente y utilizo el font family para usarla en el html y no me lo hace, he realizado varias pruebas y con otra fuentes si, pero con la Frutiger Linotype no me deja, ayuda please

  93. Angel

    Hola, tengo una pregunta, se pueden aplicar encabezados y pié de página a la hora de crear un pdf a partir de un html ya hecho, es decir, cargo un html como en el primer ejemplo y después se le añade la cabecera y el pié de página. O es obligatorio tener que ir añadiéndolo mientras vamos generando el código html???

  94. Carlangas

    Asi quisiera q

  95. Carlangas

    Asi quisiera que fuera la mayoria de los tutoriales, simple pero preciso.. Felicitaciones!

  96. Guille

    Hola,

    Muy buenas indicaciones, muchas gracias.
    Estoy teniendo un problema al generar el PDF que no se resolver, quizá alguien haya pasado por lo mismo, agradecería la ayuda.Paso el HTML al objeto DOMPDF y me genera el PDF pero pinta todo en la parte superior de la página, completamente apiñado.

    Un saludo.

  97. Sebastian

    Buenas… estoy utilizando Dompdf, pero al generar el documento PDF de una tabla, las palabras se cortan de manera incorrecta.

    Por ejemplo:

    Forma Correcta:

    Caracteriza ecosistemas y
    analiza el equilibrio dinámico
    entre sus poblaciones.
    - Describe y relaciona los ciclos
    del agua, de algunos elementos
    y de la energía en los
    ecosistemas.

    Forma Incorrecta:

    Caracteriza ecosistemas y
    analiza el equilibrio dinámico e
    ntre sus poblaciones.
    - Describe y relaciona los ciclos
    del agua, de algunos elementos
    y de la energía en los e
    cosistemas.

    La informacion se muestra en celdas.. que podra estar pasando ???

    este mismo inconveniente lo tenia INGEDAY espero que el lo halla solucionado y me puedan colaborar. Espero su pronta respuesta.
    gracias.

  98. lenin ocaña

    acabo de probar tu script para insertar pie de pagina es muy bueno, pero como hago para que si el texto es mas largo aparezca en varias lineas?

    saludos

Comentar

Ultimos Comentarios

  • william

    en LaCuerda.net : Tablaturas y Acordes en Español

    hola , me gustaria encontrar canciones para bandola pero que no sean ...
  • 2010-09-06 12:57:23
  • lenin ocaña

    en Creacion de archivos PDF en PHP con DOMPDF

    acabo de probar tu script para insertar pie de pagina es muy bueno, pe...
  • 2010-08-25 11:40:31
  • Amateur

    en LaCuerda.net : Tablaturas y Acordes en Español

    RE bien la página loco!! mejoraria con algo mas en guitar elec.....
  • 2010-08-18 15:41:16
  • Sebastian

    en Creacion de archivos PDF en PHP con DOMPDF

    Buenas… estoy utilizando Dompdf, pero al generar el documento PDF de...
  • 2010-08-12 15:32:50
  • Guille

    en Creacion de archivos PDF en PHP con DOMPDF

    Hola, Muy buenas indicaciones, muchas gracias. Estoy teniendo un p...
  • 2010-08-12 03:38:56
  • Carlangas

    en Creacion de archivos PDF en PHP con DOMPDF

    Asi quisiera que fuera la mayoria de los tutoriales, simple pero preci...
  • 2010-08-11 10:59:01
  • Carlangas

    en Creacion de archivos PDF en PHP con DOMPDF

    Asi quisiera q...
  • 2010-08-11 10:58:37
  • Jonathan Andres

    en Stick Arena

    hola esto cuando voy a jugar cualquier partida de stick arena ..... la...
  • 2010-08-09 15:29:17
  • Angel

    en Creacion de archivos PDF en PHP con DOMPDF

    Hola, tengo una pregunta, se pueden aplicar encabezados y pié de pág...
  • 2010-07-08 03:02:15
  • ken

    en Cloverfield : Un Monstruo en Manhattan

    joder buena peli...
  • 2010-07-03 16:41:38