2010-12-27 20 views
6

Sé que hay muchas publicaciones sobre este problema. Pero ¿alguien puede ayudarme a configurar esta secuencia de comandos http://www.rustyparts.com/pdf.php para trabajar en mi servidor local? Acabo de pasar toda la semana en este problema. Tengo descargar imagemagic, ghostscript, activeperl ,. .., todo, pero todavía no puedo hacer que el simple ejemplo funcione.Convirtiendo html a pdf en php?

+2

Es una especie de biblioteca que ya no se mantiene. ¡Su última versión es de 2006! Consideraría uno más nuevo y activo. – ncuesta

+0

Si decide no continuar con la biblioteca que está utilizando, puede encontrar una buena lista aquí: http://stackoverflow.com/q/3178448/264628. Parece que estás probando wkhtmltopdf, pero también hay una serie de soluciones PHP puras. – BrianS

Respuesta

10

Use wkhtmltopdf mediante una llamada al sistema. Consulte How to install wkhtmltopdf on a linux based (shared hosting) web server para obtener ayuda con la instalación.

wkhtmltopdf es un programa de línea de comandos que permite crear un PDF a partir de una URL , un archivo HTML local o la entrada estándar. Es produce un pdf como rendido con el motor WebKit .

Ver el ejemplo de esta página here.

código php probado en Ubuntu (que tendrá que cambiar el /tmp/ a un directorio temporal de Windows):

$url = 'http://www.google.com'; 
$pdffile = tempnam('/tmp/', 'wkhtmltopdf_'); 
$handle = popen("wkhtmltopdf $url $pdffile 2>&1", "r"); 
while (!feof($handle)) 
    fread($handle, 4096); 
pclose($handle); 
header('Content-type: application/pdf'); 
$file = fopen($pdffile, "r"); 
while(!feof($file)) 
    print fread($file, 4096); 
unlink($pdffile); 

Hay también php bindings que elimina la necesidad de utilizar un sistema de llamarse a sí mismo, que es una opción más simple (¡y más segura!).

try { 
    $wkhtmltopdf = new Core_Wkhtmltopdf(array('path' => APPLICATION_PATH . '/../public/uploads/')); 
    $wkhtmltopdf->setTitle("Title"); 
    $wkhtmltopdf->setHtml("Content"); 
    $wkhtmltopdf->output(Wkhtmltopdf::MODE_DOWNLOAD, "file.pdf"); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 
+0

Ohhh, otra biblioteca de php pdf: (((pero necesito crear un sistema para exportar páginas html a pdf, el usuario debe hacer clic en el enlace en el sitio web, y luego se genera el archivo pdf? – user147

+0

Tenga cuidado con las comillas simples allí. quiero la sustitución de variables, esas tendrán que ser comillas dobles. – ncuesta

+0

ok, genial, se ve muy bien, puedo usar esta biblioteca en mi sitio web, no soy php gurú, solo estoy aprendiendo algunas cosas – user147

3

simple pero potente: http://html2pdf.fr/en/default

$html = file_get_contents("valid.html"); 
require_once("html2pdf.class.php"); 
$html2pdf = new HTML2PDF("P", "A4", "en", array(10, 10, 10, 10)); 
$html2pdf->setEncoding("ISO-8859-1"); 
$html2pdf->WriteHTML($html); 
$html2pdf->Output("pdf/PDF.pdf", "F"); //output to file 
$html2pdf->Output(); //output to browser 
+0

esto se ve genial, ¿es simple de instalar en localhost? luego, más tarde en el servidor? – user147

+0

Sí, simplemente extráigalo en la carpeta raíz y ya está todo listo. –

+0

Genial, voy a echar un vistazo, a esto, tnx mate :) – user147

0

Además, hay otra biblioteca que genera archivos PDF: TCPDF. Agradable y bastante simple. Puedes encontrar muchos ejemplos alrededor.

1

DocRaptor.com es una buena opción: utiliza Prince XML, por lo que la calidad es mejor que otras herramientas, y es una aplicación web, por lo que no hay nada que descargar. También funciona en cualquier idioma.