2012-09-24 98 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');