我想创建pdf并希望强制将pdf保存在PC中的任何位置,例如在浏览器的下载文件夹中 Pdf文件保存在项目文件夹中,我不知道问题是什么。生成pdf文件的PHP代码如下:
PHP代码:
$pdf_content='
<!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" />
</head>
<style type="text/css">
#pdf_header, #pdf_container{ border: 1px solid #CCCCCC; padding:10px; }
#pdf_header{ margin:10px auto 0px; border-bottom:none; }
table{ width:580px; }
#pdf_container{margin:0px auto; }
.rpt_title{ background:#99CCFF; }
</style>
<body>
<div id="pdf_header" >
<table border="0" cellspacing="1" cellpadding="2">
<tr id="hdRow">
<td width="20%"><img src="space_age_header.jpg" style="width:250px" ></td>
<td width="30%" align="center">Sample File</td>
<td width="30%" align="left">Marimuthu<br>User Code : 179865420</td>
</tr>
</table>
</div>
<div id="pdf_container" >
<table border="0" cellspacing="1" cellpadding="2">
<tr align="center" bgcolor="pink" style="color:#FFF"><td colspan="3"><b>Your Statement Summery</b></td> </tr>
<tr bgcolor="#006" style="color:#FFF"><td colspan="3" align="left">Your Heading.</td></tr>
</table>
<table> <tr> <td> Name </td><td> Department</td><td>Total </td><td>Grade </td> </tr>
<tr> <td> Marimuthu </td><td> Admin</td><td>250 </td><td>A </td> </tr>
</div></body></html>';
//$filename = 'app.pdf';
//$reportPDF=createPDF(12, $pdf_content, 'activity_Report', $name );
//function createPDF($pdf_userid, $pdf_content, $pdf_For, $filename){
//$path='UsersActivityReports/';
/*$rndNumber=rand();
$filename=$pdf_userid.date("Ymd").$rndNumber.'.pdf';*/
$dompdf=new DOMPDF();
$dompdf->load_html($pdf_content);
$dompdf->render();
$output = $dompdf->output();
file_put_contents('app.pdf', $output);
?>
答案 0 :(得分:1)
您不能强制PDF保存在客户端计算机上的任何位置,以防您想要做的事情(您可能会澄清您的问题)。但是,您可以将PDF发送到浏览器并指示您要弹出保存对话框。
PDF正在保存到您的项目文件夹(在您的服务器上),因为您使用以下内容:
$output = $dompdf->output();
file_put_contents('app.pdf', $output);
$dompdf->output()
返回一个字符串,file_put_contents()
将字符串的内容放入服务器文件系统的文件中。由于您没有指定路径,因此文件将放在当前工作目录中(例如,您的脚本所在的位置)。
如果要将PDF发送给客户端,请使用$dompdf->stream()
。用以下内容替换上面提到的两行,让浏览器显示保存对话框:
$dompdf->stream('app.pdf');
或者,更明确地
$dompdf->stream('app.pdf', array('Attachment' => true));
最后一点说明。您不能同时使用流和输出方法。如果要将文件保存到服务器并发送到浏览器,则必须保存PDF,设置HTTP标头,然后将PDF发送到浏览器:
$output = $dompdf->output();
file_put_contents('app.pdf', $output);
header('Content-type: application/pdf');
header("Content-Length: " . mb_strlen($tmp, '8bit'));
header("Content-Disposition: attachment; filename=app.pdf);
echo $output;
(标题取自CPDF stream method。)