Sustituir fopen por la libreria cURL en html2fpdf

junio 4, 2009

[go to the english version]

He recibido varias consultas en relación al problema de crear un PDF con imágenes en ciertos servidores en los que el valor de la directiva “allow_url_fopen” está en Off en el archivo de configuración php.ini.

La clases html2fpdf hace uso de fopen para abrir las imágenes contenidas en el html que usamos de fuente para crear el PDF y en los casos que acabamos de comentar no funcionará correctamente. Es decir, las imágenes no se mostrarán en los PDF que generemos.

La solución está en sustituir la funcion fopen por las funciones que nos ofrece cURL, una libreria multiplataforma que permite la transferencia de archivos desde el lado del cliente a través de múltiples protocolos.

A modo de ejemplo os muestro un trozo del código modificado:

if (‘allow_url_fopen’ == ‘Off’)
{
$f=fopen($file,’rb’);
}else{
//—————Open with CUrl
$curl_handler = curl_init();
curl_setopt($curl_handler, CURLOPT_URL, $file);
curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handler, CURLOPT_BINARYTRANSFER, 1);
$f = curl_exec($curl_handler);
curl_close($curl_handler);
}

He subido los archivos fpdf y html2fpdf, para que los sustituyais por los originales, con las modificaciones necesarias. Podéis descargarlos aquí.

Espero que os sean de ayuda.


Definir cabeceras en los PDF generados con html2fpdf

noviembre 5, 2008

He recibido varias consultas acerca de como insertar cabeceras en los documentos PDF generados con html2fpdf.

En mi opinión, la solución mas sencilla es modificar la función Header() que podéis encontrar en el archivo html2fpdf.php por algo parecido a esto, depende lo que requiera el diseño de la cabecera de vuestro documento:

//Page header
function Header($content=”)
{
//Logo
$this->Image(‘backHeader.jpg’,90,20,200);
//Arial bold 15
$this->SetFont(‘Arial’,’B’,15);
//Movernos a la derecha
$this->Cell(80);
//Título
// $this->Cell(30,10,’Title’,1,0,’C’);
//Salto de línea
$this->Ln(20);
}

El método mas seguro es el de utilizar una única imagen como cabecera. El uso de textos, opción que aparece comentada en este ejemplo, trae problemas de duplicación de los mismos en las cabeceras de las páginas.


Generar un PDF “al vuelo” con PHP con Html2fPdf

diciembre 27, 2007

NOTA: Hemos colgado los arhivos fpdf y html2fpdf modificados para utilizar cURL en lugar de fopen. Mas información aquí.

En este tutorial vamos a tratar de explicar como generar PDF´s “on line” o “al vuelo” desde nuestras páginas escritas con PHP.

Para ello vamos a utilizar el proyecto html2fpdf. Este proyecto se basa fundamentalmente en la utilización de 3 clases escritas en PHP: FPDF, HTML2FPDF (extensión de la clase FPDF) y PDF (site Version). Se incluye otro script complementario contenido en el archivo htmltoolkit.php.

Lee el resto de esta entrada »


Los documentos PDF se convierten en soporte publicitario

diciembre 19, 2007

Un acuerdo entre Yahoo! y Adobe Systems ha propiciado la creación de un nuevo soporte publicitario: los documentos pdf.

Ads for Adobe PDF powered by Yahoo es el nombre del servicio que comercializa el portal de internet y con la que se pretende aprovechar el uso generalizado entre los internautas del programa de lectura de archivos de texto que comercializa la empresa informática. Esta iniciativa, lanzada en una versión provisional, facilita a los editores de medios on line poder incluir en los documentos pdf anuncios que estén ligados al contenido de los propios documentos.

Lee el resto de esta entrada »