dompdf不从服务器渲染图像,而是从外部源渲染

时间:2012-05-30 00:18:38

标签: php image pdf codeigniter-2 dompdf

我正试图在最近几天解决这个问题并且没有任何结果。

我有dompdf在我的服务器上工作并且它创建了pdf。唯一的问题是它不会重新发送我发送给它的图像。我将DOMPDF_ENABLE_REMOTE设置为TRUE,tmp文件夹是可写的并且get_file_contents已打开。

现在,您在dompdf文件夹中获得的示例呈现远程图像正常,它似乎是我的服务器中导致问题的图像文件。

我尝试过绝对和相对网址。

我通过codeigniter运行它,并且它的beta版本为0.6.0。

这是我的帮手:

   function create_pdf($html, $filename, $stream=TRUE) 
   {
    require_once("dompdf/dompdf_config.inc.php");

    spl_autoload_register('DOMPDF_autoload');

    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    if ($stream) {
        $dompdf->stream($filename.".pdf");
    } else {
        write_file("./pdf_written_files/$filename.pdf", $dompdf->output());
    }
}

我的控制器功能:

function pdf($id)
{
    if($id !== NULL)
    {
        $this->load->helper(array('create_pdf','text'));

        $result = $this->product_model->order_by('order')->get_by(array('id' => $id))? : NULL;
        $collection = $this->collection_model->my_collection($result->id);
        $range = $this->range_model->my_range($result->id);
        $result->collection = $collection;
        $result->range = $range;
        $this->_data['content'] = $result;
        $html = $this->load->view('created_pdf', $this->_data, TRUE);
        create_pdf($html, $result->title);
    }
    else
    {
        echo 'no input found';
    }
}

3 个答案:

答案 0 :(得分:4)

您的图片链接必须使用您的网络文件夹中的相对路径。例如,如果您的Web文件夹位于/ var / www / html / myweb中,并且CI文件夹中的图像位于assets / images(与应用程序文件夹处于同一级别),则只需编写相对路径:assets / images / imgname .JPG。

答案 1 :(得分:0)

我遇到了完全相同的问题,没有为我显示图像 - 背景图像和内联图像。我必须在您的配置DOMPDF_ENABLE_REMOTE

中将true设置为dompdf_config.inc.php

如果您已启用DOMPDF_ENABLE_PHP,请注意安全风险。

答案 2 :(得分:0)

添加以下行

$dompdf = new DOMPDF();
$dompdf->set('isRemoteEnabled', true);
$dompdf->load_html($html);

如果这不起作用,则将方法从 set 更改为 set_option