FPDF SetX和SetY调用命令错误?

Tho*_*ten 5 php fpdf

似乎SetX()和SetY()的顺序很重要.如您所见,示例中的第二个单元格框位于以下坐标:X:10.00125/Y:80.实际上它应该在x = 80.首先设置Y坐标可以解决问题.这是一个错误吗?使用的PHP版本是5.3.28.

<?php
require('./fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);

$pdf->SetY(50);
$pdf->SetX(80);
$pdf->Cell(0,5,'Coordinates: X:'.$pdf->GetX().'/Y:'.$pdf->GetY(), 1); 

$pdf->SetX(80);
$pdf->SetY(80);
$pdf->Cell(0,5,'Coordinates: X:'.$pdf->GetX().'/Y:'.$pdf->GetY(), 1); 

$pdf->Output();
?>
Run Code Online (Sandbox Code Playgroud)

Lar*_* M. 10

这很明显.查看源代码或手册:

function SetY($y)
{
    // Set y position and reset x
    $this->x = $this->lMargin;
    if($y>=0)
        $this->y = $y;
    else
        $this->y = $this->h+$y;
}
Run Code Online (Sandbox Code Playgroud)

所以这似乎不是错误.x被重置为左边距,你已经注意到了.您可以使用SetXY($ x,$ y)代替.

我认为他们想让SetY用于放置下一段,所以它总是与左侧对齐.

  • 哇,那......真的很糟糕.一个名为SetY的方法应该对X没有影响.特别是如果没有一个doc块告诉你的话. (5认同)