fpdf 在 table 行中使用 table 和 multilcell 显示图像
fpdf display image in table row using table with multilcell
我在使用 fpdf 库显示图像时遇到问题。我将 fpdf Table 与 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 替换 image_path
。如何使用此脚本显示图像?
我的 pdf 将如下所示。
使用 Inhertence 修改 PDF_MC_Table class 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);
我在使用 fpdf 库显示图像时遇到问题。我将 fpdf Table 与 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 替换 image_path
。如何使用此脚本显示图像?
我的 pdf 将如下所示。
使用 Inhertence 修改 PDF_MC_Table class 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);