PDF格式的文本中心形状

时间:2012-03-25 09:57:00

标签: php tcpdf

我一直在尝试在其中心生成带有文本的形状,如下所示:

$pdf->Text(25, 100, 'Name', false, false, true, 0, 0, 'C');
$pdf->Ellipse(25, 100, 20, 10);

但输出完全错误,文本位置与椭圆完全不同。任何人都可以建议一个好的方法来将形状和测试集中在同一个位置吗?

1 个答案:

答案 0 :(得分:0)

$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);