2012-09-24 84 views
24

Tengo una página que utiliza mPDF que cuando se ejecuta muestra un PDF en el navegador, también se puede guardar desde aquí como un PDF no hay problema. Lo que me gustaría que ocurra es cuando se ejecuta la página y genera un PDF que la página se guarda como PDF en el servidor.PHP mPDF guardar archivo como PDF

Aquí está el código actual:

<?php 
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/WSAclient.php'; 
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/WSAParser.php'; 

$reportID= $_GET['reportid']; 

$WSAclient = new WSAclient(WSA_USER_ID,WSA_API_KEY); 

$result=$WSAclient->viewReport($reportID,WSA_SUBSCRIPTION_ID,'xml','EN'); 

unset($WSAclient); 

ob_start(); 
?> 
<!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=utf-8" /> 
<title>PDF Report</title> 
<!--Add your CSS here--> 
</head> 
<body>  
<?php 
echo WSAParser::viewReportResponse($result); 
?> 
</body> 
</html> 
<?php 
$HTMLoutput = ob_get_contents(); 
ob_end_clean(); 


//Convert HTML 2 PDF by using MPDF PHP library 
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/MPDF/mpdf.php'; 
$mpdf=new mPDF(); 

$mpdf->WriteHTML($HTMLoutput); 
$mpdf->Output(); 
?> 

como he dicho esto da salida a la multa PDF, pero alguien podría decirme cómo guardar en formato PDF?

Respuesta

64

El mPDF docs indica que el primer argumento de Output() es la ruta del archivo, el segundo es el modo de guardado; debe establecerlo en 'F'.

$mpdf->Output('filename.pdf','F');  // only save to File 

Actualizado:
Es posible que tenga esto también:

$mpdf->Output('filename.pdf','D');  // make it to DOWNLOAD 
+7

Eres mi amigo, eres un salvavidas, pasé horas tratando de encontrar eso. ¡Gracias! – Paul

+1

Esto no funcionó para mí, ¡pero cambiarlo a D en lugar de a F! ¿Qué quieren decir? – Mikeys4u

+2

D - enviar al navegador y forzar la descarga, F - guardar en el archivo. El enlace de documentos que proporcioné lo explica. –

9

Esto se puede hacer así. Funcionó bien para mí Y también establece los permisos de directorio en 777 o 775 si no están configurados.

ob_clean(); 
$mpdf->Output('directory_name/pdf_file_name.pdf', 'F');