使用dompdf循环不能正常保存多个pdf文件

时间:2015-09-30 15:35:33

标签: php dompdf

我正在使用dompdf。我想将多个pdf文件保存到服务器。下面是我试图完成此任务的代码。但我在一个pdf文件中获取所有订单。这意味着虽然循环执行不止一次,但只生成了一个pdf文件。并且数据附加在相同的pdf文件中,并且数据也是正确的。

$sel_orders = "SELECT * FROM tbl_orders WHERE `user_id`=$user_id AND `mail`='pending' GROUP BY order_num";
$order_res = mysql_query($sel_orders);
$sum = mysql_num_rows($order_res);

$dir = dirname(__FILE__);
require_once($dir.'/dompdf/dompdf_config.inc.php');
if($sum > 0)
{
    while($row1 = mysql_fetch_array($order_res))
    {
        $order_num = $row1['order_num']; // test-123
        $post = new stdClass;
        ob_start();
        include($dir.'/pdf.php');
        $pdf_html = ob_get_contents();
        ob_end_clean();
        $dompdf = new DOMPDF(); // Create new instance of dompdf
        $dompdf->load_html($pdf_html); // Load the html
        $dompdf->render(); // Parse the html, convert to PDF
        $pdf_content = $dompdf->output(); // Put contents of pdf into variable for later
        error_reporting(E_ERROR | E_PARSE);     
        $file_to_save = '"http://www.exampe.com/test/orders/$order_num.pdf"';
        file_put_contents($file_to_save, $dompdf->output());        

    }
}

在pdf.php文件中,我的html代码以pdf格式打印。每次控件进入循环时,我想创建一个单独的pdf。我从下面的链接尝试了解决方案,但它对我不起作用。有人PLZ指出我做错了什么?如果需要任何进一步的信息请告诉我。谢谢!

I want to create multiple pdfs in a loop using dompdf?

1 个答案:

答案 0 :(得分:0)

我非常怀疑网站是否允许您使用URL将文件保存到它,无论哪种方式更容易使用相对路径和文件名,即使这是您运行代码的站点。

首先使用真实有效的文件名作为输出。您还将文档保存到$pdf_content,然后不要使用该变量。

$pdf_content = $dompdf->output(); 

// make this a valid directory and filename for your site
// check that the web server account has correct privilages to write to it
$file_to_save = "/test/orders/$order_num.pdf";

file_put_contents($file_to_save, $pdf_content);