Cómo convertir HTML/CSS a PDF en PHP en Linux

He estado tratando de convertir una página html a PDF sin suerte, he intentado usar wkhtmltopdf (http://code.google.com/p/wkhtmltopdf/) y la clase PHP provista por los mismos desarrolladores (http: //code.google.com/p/wkhtmltopdf/wiki/IntegrationWithPhp) aunque el siguiente comando se ejecutó correctamente en la terminal:

wkhtmltopdf http:/www.googl.com test.pdf

No pude ejecutar el comando en PHP debido al siguiente error: no puedo conectarme al servidor X.

¿Alguien puede proporcionarme un tutorial paso a paso para poder convertir html/css a archivo PDF, ya sea usando wkhtmltopdf o cualquier otra solución decente?

Gracias por adelantado

aquí está la clase que he usado http://code.google.com/p/wkhtmltopdf/wiki/IntegrationWithPhp

y abajo está mi código

$html = file_get_contents("test.html");

$pdf = new WKPDF();

$pdf->set_html($html);

$pdf->render();

$pdf->output(WKPDF::$PDF_EMBEDDED,'sample.pdf');

A continuación se muestra el error:

Fatal error: Uncaught exception 'Exception' with message 'WKPDF didn't return any data.
/usr/bin/wkhtmltopdf: /opt/lampp/lib/libxml2.so.2: no version information available
(required by /usr/lib/libgstreamer-0.10.so.0) No protocol specified wkhtmltopdf: cannot
connect to X server :0 </pre>' in /var/www/c4/components/com_wkhtmltopdf
/wkhtmltopdf.class.php:211 Stack trace: #0 /var/www/c4/components/com_wkhtmltopdf
/wkhtmltopdf.php(68): WKPDF->render() #1 /var/www/c4/components/com_wkhtmltopdf
/wkhtmltopdf.php(50): html2pdf() #2 /var/www/c4/index2.php(114): require_once('/var/ww...') 
#3 {main} thrown in /var/www/c4/components/com_wkhtmltopdf/wkhtmltopdf.class.php on line 211

preguntado el 26 de abril de 12 a las 08:04

Echa un vistazo a stackoverflow.com/questions/391005/… Y prueba la función de búsqueda. ;) -

Como estás preguntando a esa chica y eres el tipo de persona TIA: ¡Usa el duplicado, K THX TIA! - Ir a través de las respuestas allí paso a paso. -

Paul, el hilo que ha enviado es el mismo hilo que me llevó a la biblioteca wkhmltopdf, y después de probar los pasos anteriores, decidí pedir ayuda:

Por favor, publique el código (PHP) que ha probado. No podemos ayudarte sin ver tu código. Por cierto, el error "no se puede conectar al servidor X" puede deberse a que el usuario que ejecuta el script PHP no tiene permiso para hacerlo. ¿Cuál es tu entorno? ¿Se está ejecutando X, o es un servidor sin cabeza al que se conecta de forma remota? ¿Es esto alojado o interno (es decir, tiene control total sobre la caja)? -

daiscog: he agregado el código y sí, tengo control total sobre el servidor. Gracias -

1 Respuestas

Encontré la solución, el siguiente error "No se especificó ningún protocolo wkhtmltopdf: no se puede conectar al servidor X: 0" fue causado básicamente por una versión anterior de "wkhtmltopdf" que se instaló usando apt-get. La solución fue descargar el binario estático de code.google usando el siguiente enlace: http://code.google.com/p/wkhtmltopdf/downloads/list

y luego realice las siguientes acciones:

tar -jxvf wkhtmltopdf-0.11.0-static.tar.bz2
sudo aptitude install ia32-libs

A continuación, deberá crear un enlace simbólico que apunte a WKHTMLTOPDF en /usr/bin.

sudo ln -s /full_path/WKHTMLTOPDF /usr/bin/WKHTMLTOPDF

Respondido 30 Abr '12, 06:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.