我无法使用fpdf库显示图像。我将fpdf表与MultiCells脚本[http://www.fpdf.org/?go=script&id=3]一起使用。
我可以通过调用此函数来显示数据
$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
。如何使用此脚本显示图像?
答案 0 :(得分: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);