2017-09-30 161 views
0

我無法使用fpdf庫顯示圖像。我使用帶有MultiCells腳本的fpdf表格[http://www.fpdf.org/?go=script&id=3]。fpdf使用多列單元格的表格行顯示圖像

我可以調用這個函數

$data = [ 
    ['A','B','C','image_path'], 
    ['A','B','C','image_path'], 
    ['A','B','C','image_path'], 
]; 
$pdf->Row($header); 
foreach($data as $v) $pdf->Row($v); 

這將很好地產生數據顯示的數據。我想用圖像替換image_path。如何使用此腳本顯示圖像?

我的pdf將如下所示。 enter image description here

回答

1

通過使用Inhertence修改PDF_MC_Table類的Row()函數。

Class Pdf extends PDF_MC_Table{ 
    protected $imageKey = ''; 

    public function setImageKey($key){ 
    $this->imageKey = $key; 
    } 

    public function Row($data){ 
    $nb=0; 
    for($i=0;$i<count($data);$i++) 
     $nb=max($nb,$this->NbLines($this->widths[$i],$data[$i])); 
     $h=5*$nb; 
     $this->CheckPageBreak($h); 
     for($i=0;$i<count($data);$i++){ 
     $w=$this->widths[$i]; 
     $a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'L'; 
     $x=$this->GetX(); 
     $y=$this->GetY(); 
     $this->Rect($x,$y,$w,$h); 

     //modify functions for image 
     if(!empty($this->imageKey) && in_array($i,$this->imageKey)){ 
      $ih = $h - 0.5; 
      $iw = $w - 0.5; 
      $ix = $x + 0.25; 
      $iy = $y + 0.25; 
      $this->MultiCell($w,5,$this->Image ($data[$i],$ix,$iy,$iw,$ih),0,$a); 
     } 
     else 
      $this->MultiCell($w,5,$data[$i],0,$a); 
     $this->SetXY($x+$w,$y); 
     } 
     $this->Ln($h); 
    } 
    } 

} 

現在這樣調用

$data = [ 
    ['A','B','C','image_path'], 
    ['A','B','C','image_path'], 
    ['A','B','C','image_path'], 
]; 

$pdf = new Pdf(); 
$pdf->AddPage(); 
$pdf->setImageKey = [4]; 
$pdf->Row($data); 
此功能