web-dev-qa-db-ja.com

FPDFテキストを左揃え、中央揃え、右揃え

3つのセルがあり、テキストを左、中央、右に揃えようとしています。

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

誰かが私がここで間違っていることと、この問題をどのように修正できるかを教えてもらえますか?

6
user2929483

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' ); 
    } 
}
11
Jan Slabon

Jan Slabonの回答は本当に良かったのですが、ページの中央が正確に中央に配置されていないという問題がまだありましたが、ライブラリのバージョンが異なる可能性があり、それがわずかな違いを説明しています。利用可能です。とにかく、それが私のために働いた方法はこれです:

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

これにはパラメーターがあるようです(右揃えの場合は「R」、中央揃えの場合は「C」)。

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

テキストを右揃えにします。また、最初のパラメーター( 'width')はゼロなので、セルの幅は100%です。

0
Vishnja