我使用FPDF库作为PDF文档生成器生成一个表。
问题是包含数据的表不会居中,尽管我尝试在$pdf->Cell()参数中写入'C‘。输出与左侧对齐,如下所示。

以及为什么当我添加一个新的列(5列)时,单元格被移动到底部,而右边仍然有空格,如下所示。

我尝试在所有相关的单元格中添加'C‘参数,如下所示
$pdf->Cell(190,7,'Some text',0,1,'C');,
也可以使用$pdf->SetXY(20,20);,这是来自this post的解决方案,但仍然不起作用。
我目前的代码是:
<?php
require('fpdf.php');
$pdf = new FPDF('P','mm','A4');
$pdf->AddPage();
$pdf->Image('some_image.png',10,10,30,15);
$pdf->SetFont('Arial','B',16);
$pdf->Cell(190,7,'Some title',0,1,'C');
$pdf->SetFont('Arial','B',9);
$pdf->Cell(190,7,'Jl. Some address',0,1,'C');
$pdf->Cell(10,7,'',0,1);
$pdf->SetFont('Arial','B',9);
$pdf->Cell(190,7, $somestring1 ,0,1,'C');
$pdf->SetFont('Arial','',9);
$pdf->Cell(190,7,'to',0,1,'C');
$pdf->SetFont('Arial','B',9);
$pdf->Cell(190,7, $somestring2 ,0,1,'C');
$pdf->SetFont('Arial','B',8);
$pdf->Cell(10,7,'',0,1,'C');
$pdf->Cell(6,6,'NO',1,0,'C');
$pdf->Cell(23,6,'TUJUAN',1,0,'C');
$pdf->Cell(25,6,'PEMINJAM',1,0,'C');
$pdf->Cell(35,6,'KENDARAAN',1,0,'C');
$pdf->Cell(27,6,'JAM BERANGKAT',1,1,'C');
// If I add this cell, then i'll overlap/move to the bottom
$pdf->Cell(27,6,'JAM PULANG',1,1,'C');
$pdf->SetFont('Arial','',8);
$query = mysqli_query($someconn, "SELECT somequery");
$i = 1;
while ($row = mysqli_fetch_array($query)){
$pdf->Cell(6,6,$i++,1,0,'C');
$pdf->Cell(23,6,$row['sometable'],1,0,'C');
$pdf->Cell(25,6,$row['sometable'],1,0);
$pdf->Cell(35,6,$row['sometable']." ".$row['sometable'],1,0,'C');
$pdf->Cell(27,6,$row['sometable'],1,1,'C');
$pdf->Cell(30,6,$row['sometable'],1,1,'C');
}
$pdf->Output();
?>发布于 2019-05-14 12:19:11
到下一页的流动似乎是由这一行引起的。
$pdf->Cell(27,6,'JAM BERANGKAT',1,1,'C');
包含在'C'前面的1(其中一个表示转到下一行)。把它改成
$pdf->Cell(27,6,'JAM BERANGKAT',1,0,'C');
这个额外的细胞不应该在新的线路上开始。
对于对中,没有边距设置,您的页面宽度应该是210。你所有细胞的宽度都是153,这意味着这应该很适合。
要在页面上居中,请使用SetLeftMargin将页面宽度( 210 )与列的总宽度( 153,即28 )之差的一半。在创建FPDF实例之后,在开始新页面之前设置页边距。
$pdf = new FPDF('P','mm','A4');
$pdf->SetLeftMargin(28);
$pdf->AddPage();https://stackoverflow.com/questions/56033223
复制相似问题