$pdf->Text(25, 100, 'Name', false, false, true, 0, 0, 'C');
Text
на самом деле является оберткой для Cell
, временно изменяющей параметры отображения текста и перемещающейся к указанным координатам перед вызовом.Фактически существует три параметра выравнивания для Text
и / или Cell
.$align
(в вопросе установлено значение 'C') устанавливает горизонтальное выравнивание текста в ячейке, но не меняет начальную позицию ячейки.Проблема в том, что Cell вызывается с шириной 0, которая расширяет ячейку до правого поля.Центрирование текста, таким образом, перемещает текст от предполагаемого местоположения.$calign
устанавливает вертикальное выравнивание ячейки относительно заданного положения x, y, а $valign
устанавливает вертикальное выравнивание текста внутри ячейки.
Один из способов получить центрированный текст - вызвать Cell
и создайте прямоугольник с известными размерами (например, совпадающими с размерами фигуры), расположенными так, чтобы соответствовать центру фигуры, и центрируйте текст внутри ячейки с помощью $align
и $valign
.Например:
$cx = 50;
$cy = 100;
$rx = 20;
$ry = 10;
$pdf->SetXY($cx-$rx, $cy-$ry);
$pdf->Cell(2*$rx, 2*$ry, 'Name', null, null, 'C', null, null, null, null, 'T', 'C');
$pdf->Ellipse($cx, $cy, $rx, $ry);