首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP在FPDF中对表进行居中

如何使用PHP在FPDF中对表进行居中
EN

Stack Overflow用户
提问于 2019-05-08 03:42:21
回答 1查看 4.6K关注 0票数 3

我使用FPDF库作为PDF文档生成器生成一个表。

问题是包含数据的表不会居中,尽管我尝试在$pdf->Cell()参数中写入'C‘。输出与左侧对齐,如下所示。

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

我尝试在所有相关的单元格中添加'C‘参数,如下所示

$pdf->Cell(190,7,'Some text',0,1,'C');

也可以使用$pdf->SetXY(20,20);,这是来自this post的解决方案,但仍然不起作用。

我目前的代码是:

代码语言:javascript
复制
<?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();

?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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实例之后,在开始新页面之前设置页边距。

代码语言:javascript
复制
$pdf = new FPDF('P','mm','A4');
$pdf->SetLeftMargin(28);
$pdf->AddPage();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56033223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档