2012-09-24 99 views
24

我有一個使用mPDF的頁面,當您運行時在瀏覽器中顯示PDF時,它也可以從這裏保存爲PDF沒有問題。我希望發生的情況是頁面運行時生成一個PDF,頁面在服務器上保存爲PDF。PHP mPDF保存文件爲PDF

下面是當前的代碼:

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

就像我說的這個輸出PDF不錯,但可能有人告訴我如何保存爲PDF?

回答

64

mPDF docs表示Output()的第一個參數是文件路徑,第二個參數是保存模式 - 您需要將其設置爲'F'

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

更新時間:
您可能需要這樣太:

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

你我的朋友是一個救星,花了數小時試圖找到那個。謝謝! – Paul

+1

這對我不起作用,但將它改爲D而不是F!他們的意思是什麼? – Mikeys4u

+2

D - 發送到瀏覽器並強制下載,F - 保存到文件。我提供的文檔鏈接解釋了它。 –

9

這可以像這樣完成。它爲我工作得很好。如果未設置,則還要將目錄權限設置爲777或775。

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