FPDF 对齐图像和单元格
FPDF align with Image and Cell
我正在尝试在 PHP 中由 FPDF 生成的 PDF 文件中进行以下布局。
--------------------------------------------------
| | Text1 |
| IMAGE | Text2 |
| | Text3 |
--------------------------------------------------
但我现在还不知道该怎么做。
这是我正在使用的代码
public function floatingImage($imgPath, $height) {
list($w, $h) = getimagesize($imgPath);
$ratio = $w / $h;
$imgWidth = $height * $ratio;
$this->Image($imgPath, $this->GetX(), $this->GetY(), 140, 100);
$this->x += $imgWidth;
}
/* Logbuch is our extension from FPDI, but there's nothing changed
* only a custom header, footer and the floatingImage and loadMapImage function are part of it
*/
$pdf = new logbuch();
// Frontpage
$pdf->AddPage();
$mapImage = $pdf->loadMapImage();
$pdf->setJPEGQuality(75);
$x = 15; $y = 21; $w = 100;
$pdf->floatingImage($mapImage, 100, 100);
$pdf->SetFillColor(154,222,229);
$pdf->Cell(0,0,"Test",0,0,'R',true);
$pdf->Ln();
$pdf->Cell(100,0,"Test",0,0,'R',true);
$pdf->Ln();
$pdf->Cell(100,0,"Test",0,0,'R',true);
这是我现在生成的结果
如果我将最后两个单元格的宽度更改为 100,它将如下所示:
这接近我想要的,单元格必须与右侧对齐。我该怎么做?
我自己找到了答案
您可以为 pdf 设置 X
值以确定 X 轴上的位置。
$pdf->Cell(0,0,"Test",0,0,'R',true);
$pdf->Ln();
$pdf->SetX(100); //The next cell will be set 100 units to the right
$pdf->Cell(100,0,"Test",0,0,'R',true);
$pdf->Ln();
重要的是,在每个写入 Cell X
之后,都会从 Cell()
函数中分配一个新值。所以你需要SetX()
再创建一个新的Cell!
我正在尝试在 PHP 中由 FPDF 生成的 PDF 文件中进行以下布局。
--------------------------------------------------
| | Text1 |
| IMAGE | Text2 |
| | Text3 |
--------------------------------------------------
但我现在还不知道该怎么做。
这是我正在使用的代码
public function floatingImage($imgPath, $height) {
list($w, $h) = getimagesize($imgPath);
$ratio = $w / $h;
$imgWidth = $height * $ratio;
$this->Image($imgPath, $this->GetX(), $this->GetY(), 140, 100);
$this->x += $imgWidth;
}
/* Logbuch is our extension from FPDI, but there's nothing changed
* only a custom header, footer and the floatingImage and loadMapImage function are part of it
*/
$pdf = new logbuch();
// Frontpage
$pdf->AddPage();
$mapImage = $pdf->loadMapImage();
$pdf->setJPEGQuality(75);
$x = 15; $y = 21; $w = 100;
$pdf->floatingImage($mapImage, 100, 100);
$pdf->SetFillColor(154,222,229);
$pdf->Cell(0,0,"Test",0,0,'R',true);
$pdf->Ln();
$pdf->Cell(100,0,"Test",0,0,'R',true);
$pdf->Ln();
$pdf->Cell(100,0,"Test",0,0,'R',true);
这是我现在生成的结果
如果我将最后两个单元格的宽度更改为 100,它将如下所示:
这接近我想要的,单元格必须与右侧对齐。我该怎么做?
我自己找到了答案
您可以为 pdf 设置 X
值以确定 X 轴上的位置。
$pdf->Cell(0,0,"Test",0,0,'R',true);
$pdf->Ln();
$pdf->SetX(100); //The next cell will be set 100 units to the right
$pdf->Cell(100,0,"Test",0,0,'R',true);
$pdf->Ln();
重要的是,在每个写入 Cell X
之后,都会从 Cell()
函数中分配一个新值。所以你需要SetX()
再创建一个新的Cell!