我正在使用FPDF库作为PDF文档生成器来生成表。
问题是尽管我试图在$ pdf-> Cell()参数中写入“ C”,但包含数据的表却不会居中。输出对齐到左侧,如下所示。
还有为什么当我添加新列( 5列)时,在右侧仍然有空格的情况下将单元格移到底部,如下所示。
我试图在所有与之相关的单元格内添加“ C”参数
$pdf->Cell(190,7,'Some text',0,1,'C');
,
还使用this post的$pdf->SetXY(20,20);
解决方案
但这仍然行不通。
我当前的代码是:
<?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();
?>
答案 0 :(得分:1)
进入下一页似乎是由此行引起的
$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();