FPDF 左对齐、居中和右对齐文本
FPDF align text LEFT, Center and Right
我有三个单元格,我正在尝试将文本左对齐、居中对齐和右对齐。
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
自动对齐。
这是它的样子:
谁能告诉我我做错了什么以及我该如何解决这个问题?
如果您将 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' );
}
}
尽管 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');
好像有这个参数,所以('R' 右对齐,'C' 居中):
$pdf->Cell(0, 10, "Some text", 0, true, 'R');
将右对齐文本。
另外,请注意第一个参数 ('width') 为零,因此单元格的宽度为 100%。
我有三个单元格,我正在尝试将文本左对齐、居中对齐和右对齐。
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
自动对齐。
这是它的样子:
谁能告诉我我做错了什么以及我该如何解决这个问题?
如果您将 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' );
}
}
尽管 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');
好像有这个参数,所以('R' 右对齐,'C' 居中):
$pdf->Cell(0, 10, "Some text", 0, true, 'R');
将右对齐文本。 另外,请注意第一个参数 ('width') 为零,因此单元格的宽度为 100%。