DOMpdf没有保存在pc位置


DOMpdf not saved in pc location

我想创建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);
    ?>

如果您想这样做(您可能会澄清您的问题),则无法强制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流方法)