2012-05-30 56 views
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'; 
    } 
} 
+0

是否在服务器上安装了php-GD? dompdf/www/setup.php是什么意思? (从浏览器导航到,如http://pxd.me/dompdf/www/setup.php)。 –

+0

它也有助于查看'$ html'拥有的样本。具体来说,当你说你已经尝试了绝对和相对URL时,你是什么意思?由于您使用的是'$ dompdf-> load_html()',没有域名的URL将与PHP文件或操作系统根目录相关(对于以“/”开头的URL)。 – BrianS

回答

4

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

+0

这对我有效。谢谢! – nickwshaw

0

我有完全相同的问题,没有图像显示给我 - 背景图像和内联的图像。我必须设置DOMPDF_ENABLE_REMOTEtrue在你的配置dompdf_config.inc.php

只要注意安全风险,如果您有这方面启用了一起DOMPDF_ENABLE_PHP