2012-05-30 58 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