2012-09-24 13 views
24

Mam stronę, która używa mPDF, który po uruchomieniu wyświetla plik PDF w przeglądarce, można go również zapisać tutaj jako PDF bez problemu. To, co chciałbym zrobić, to kiedy strona jest uruchamiana i generuje plik PDF, który strona jest zapisywana jako plik PDF na serwerze.Plik zapisu mPDF PHP jako PDF

Oto aktualny kod:

<?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(); 
?> 

Jak powiedziałem to wyprowadza grzywny PDF, ale może ktoś mi powiedzieć jak zapisać jako PDF?

Odpowiedz

64

mPDF docs stwierdza, że ​​pierwszy argument Output() jest ścieżką pliku, drugi to tryb oszczędzania - musisz ustawić go na 'F'.

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

Aktualizacja:
Może trzeba to zbyt:

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

Jesteś moim przyjacielem, ratujesz życie, spędziłeś godziny próbując je znaleźć. Dziękuję Ci! – Paul

+1

To nie działa dla mnie, ale zmieniono go na D zamiast F! Co mieli na myśli? – Mikeys4u

+2

D - wyślij do przeglądarki i wymuś pobieranie, F - zapisz do pliku. Dołączony link do Dokumentów wyjaśnia to. –

9

Można to zrobić w ten sposób. Dla mnie to zadziałało. Ustaw również uprawnienia katalogowe na 777 lub 775, jeśli nie jest ustawione.