在过去的几天里,我试图弄清楚这一点,但一无所获。
我有 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.php
中DOMPDF_ENABLE_REMOTE
设置为true
请注意,如果您同时启用此功能,则存在安全风险DOMPDF_ENABLE_PHP
。
添加以下行
$dompdf = new DOMPDF();
$dompdf->set('isRemoteEnabled', true);
$dompdf->load_html($html);
如果这不起作用,则将方法从设置更改为set_option