Sustituir fopen por la libreria cURL en html2fpdf

[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.

Anuncios

5 Responses to Sustituir fopen por la libreria cURL en html2fpdf

  1. […] fopen library for cURL in html2fpdf [ir a la versión en castellano] I received several queries regarding the problem of creating a PDF with images in some servers […]

  2. Héctor R. dice:

    Buenas. Ahora solo falta la compatibilidad con ficheros .gif jeje. Mil gracias por la info.

  3. Antonio dice:

    Muchísimas gracias llevaba un ratín devanándome la cabeza

  4. Erika Tumino dice:

    Hola, he sustituido los archivos pero me da un error en la funciones de curl. No se como hacerlo :s pueden ayudarme? gracias

  5. daniel dice:

    hola, el link con los ficheros cambiados no existe, no puedo descargarlos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: