2017-09-30 5 views
0

fpdfライブラリを使用して画像を表示できません。私はMultiCellsスクリプト[http://www.fpdf.org/?go=script&id=3]とfpdfテーブルを使用します。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をimageに置き換えたいと思います。このスクリプトを使用してイメージを表示するにはどうすればよいですか?

私のpdfはこのようになります。 enter image description here

答えて

1

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); 
のように、この関数を呼び出します
関連する問題