使用 PHP 和 FPDF 插入图像

2022-08-30 18:45:05

我正在尝试插入图像,但不想指定x和y坐标。这可能吗?

$pdf->Image($image1, 5, 70, 33.78);

我希望能够指定大小(33.78),但不能指定x和y,以便它根据内容移动。

$pdf->Write( 70, $reportTitle );
$pdf->Ln( 45 );
$pdf->SetFont( 'Arial', '', 12 );
$pdf->Write( 6, $reportSubtitle );

/**
  Create product 1
**/
$pdf->Ln( 10 );
$pdf->SetFont( 'Arial', '', 12 );
$pdf->Write( 6, $prod1title );
$pdf->Ln( 30 );
$pdf->SetFont( 'Arial', '', 10 );
$pdf->Write( 5, $prod1sub );
$pdf->Ln( 30 );
$pdf->Image($image1, 5, 70, 33.78);

以上是我使用的代码。如果$reportSubtitle是两行或三行,它会将$prod 1标题和$$prod 1sub向下推,并且不可避免地在固定的图像下。难道没有办法让图像像产品标题和副标题一样,在仍然声明尺寸的同时也被推倒?


答案 1

我想通了,它实际上非常简单。

设置变量:

$image1 = "img/products/image1.jpg";

然后,放置一个单元格,对其进行定位,然后使用您在上面创建的变量,而不是设置图像的位置,如下所示:

$this->Cell( 40, 40, $pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78), 0, 0, 'L', false );

现在,如果周围的其他单元格移动,则单元格将与内容一起上下移动。

希望这有助于同一条船上的其他人。


答案 2

您可以使用 和 来获取当前坐标,并使用它们插入图像。$pdf->GetX()$pdf->GetY()

$pdf->Image($image1, 5, $pdf->GetY(), 33.78);

甚至

$pdf->Image($image1, 5, null, 33.78);

(A虽然在第一种情况下,您可以添加一个数字以创建一个空格)

$pdf->Image($image1, 5, $pdf->GetY() + 5, 33.78);


推荐