Que tal amigos, hace algun tiempo tuve unas horas de tortura al momento de tratar de generar
pdf's con la grandiosa libreria
dompdf, el problema era que me mostraba unos mensajes extraños al momento de preguntar por alguna variable que no tenga valor, por ejemplo:
Código:
if ($opcion=="1")
{
hacer();
}
Si en ese caso la variable
$opcion estaba vacia, el explorador me mostraba un
notice Undefined variable; le daba vueltas al asunto y nada, busque en internet y la unica solucion que consegui era utilizar
isset($opcion), pero esa solucion no era nada elegante.
Pues de tanto buscar y buscar me puse a pensar y a revisar la libreria
dompdf y me tope con el pequeño gran problema, era la funcion
error_reporting de php. Solo habia que comentarla para que asi quedara desactivada:
En el archivo
dompdf/dompdf-0.5.1/dompdf_config.inc.php, buscamos la linea 42, por lo menos en la version 0.5.1 y comentamos la funcion quedando asi:
Código:
//error_reporting(E_STRICT | E_ALL);
Claro hay que saber que cuando la desactivas no podras saber cuales son los errores que se presentan al momento de generar un pdf. Normalmente ese problema tambien se presenta porque ponemos el
require_once("scripts/libreria/dompdf_config.inc.php"); mucho antes de donde se va a utilizar la libreria. Por eso recomiendo poner el
require_once justo antes de hacer el llamado, algo asi:
Código:
$html='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
</body>
</html>';
//poner este require_once justo antes del new DOMPDF();
require_once("dompdf/dompdf-0.5.1/dompdf_config.inc.php");
$old_limit = ini_set("memory_limit", "16M");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('8.5x11','portrait');
$dompdf->render();
$dompdf=$dompdf->output();
file_put_contents("liquidacion.pdf", $dompdf);
header("location: liquidacion.pdf");
Espero que sea de mucha ayuda para todos los amigos desarrolladores.
Saludos...


En caso de que se sigan mostrando los
notice se debe a que el
error_reporting esta mal configurado en el archivo php.ini
Saludos

