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


dompdf not rendering images from the server but is rendering from external source

在过去的几天里,我试图弄清楚这一点,但一无所获。

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

现在,您在dompdf文件夹中获得的示例可以很好地呈现远程图像,它似乎只是来自我的服务器的图像文件,导致问题。

我已经尝试了绝对和相对网址。

我正在通过代码点火器运行它,它是测试版 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';
    }
}

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

我遇到了完全相同的问题,没有为我显示任何图像 - 背景图像和内联图像。我必须在您的配置dompdf_config.inc.phpDOMPDF_ENABLE_REMOTE设置为true

请注意,如果您同时启用此功能,则存在安全风险DOMPDF_ENABLE_PHP

添加以下行

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

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