FPDF对齐文本LEFT,Center和Right

时间:2015-05-15 11:12:34

标签: php pdf fpdf

我有三个单元格,我正在尝试将文本与左,中,右对齐。

function Footer() 
{ 
    $this->SetY( -15 ); 


    $this->SetFont( 'Arial', '', 10 ); 

    $this->Cell(0,10,'Left text',0,0,'L');

    $this->Cell(0,10,'Center text:',0,0,'C');

    $this->Cell( 0, 10, 'Right text', 0, 0, 'R' ); 
} 

当我输出我的PDF文件时,center text会自动对齐。 这是它的外观:

enter image description here

有人可以告诉我这里我做错了什么以及如何解决这个问题?

3 个答案:

答案 0 :(得分:12)

如果将Cell方法的ln参数设置为0,则Cell调用后的新位置将设置在每个单元格的右侧。您必须在最后2个Cell调用之前重置x坐标:

class Pdf extends FPDF {
    ...

    function Footer() 
    { 
        $this->SetY( -15 ); 

        $this->SetFont( 'Arial', '', 10 ); 

        $this->Cell(0,10,'Left text',0,0,'L');
        $this->SetX($this->lMargin);
        $this->Cell(0,10,'Center text:',0,0,'C');
        $this->SetX($this->lMargin);
        $this->Cell( 0, 10, 'Right text', 0, 0, 'R' ); 
    } 
}

答案 1 :(得分:3)

虽然Jan Slabon的答案非常好,但我仍然遇到问题,中心并没有完全集中在我的页面上,也许我们有不同版本的库,这就是造成轻微差异的原因,例如他使用了lMargin和一些版本不可用。无论如何,它对我有用的方式是:

        $pdf = new tFPDF\PDF();
        //it helps out to add margin to the document first
        $pdf->setMargins(23, 44, 11.7);
        $pdf->AddPage();
        //this was a special font I used
        $pdf->AddFont('FuturaMed','','AIGFutura-Medium.ttf',true);
        $pdf->SetFont('FuturaMed','',16);

        $nombre = "NAME OF PERSON";
        $apellido = "LASTNAME OF PERSON";

        $pos = 10;
        //adding XY as well helped me, for some reaons without it again it wasn't entirely centered
        $pdf->SetXY(0, 10);

        //with SetX I use numbers instead of lMargin, and I also use half of the size I added as margin for the page when I did SetMargins
        $pdf->SetX(11.5);
        $pdf->Cell(0,$pos,$nombre,0,0,'C');

        $pdf->SetX(11.5);
        //$pdf->SetFont('FuturaMed','',12);
        $pos = $pos + 10;
        $pdf->Cell(0,$pos,$apellido,0,0,'C');
        $pdf->Output('example.pdf', 'F');

答案 2 :(得分:1)

似乎为此有一个参数,因此(“ R”代表右对齐,“ C”代表居中):

$pdf->Cell(0, 10, "Some text", 0, true, 'R');

将使文本右对齐。 另外,请注意,第一个参数(“宽度”)为零,因此单元格的宽度为100%。