Как центрировать таблицу в FPDF с помощью PHP - PullRequest
1 голос
/ 08 мая 2019

Я создаю таблицу, используя библиотеку FPDF в качестве генератора PDF-документов.
Проблема в том, что таблица, содержащая данные, не будет центрирована, хотя я пытался написать «C» в параметре $ pdf-> Cell (). Выход выровнен по левой стороне, как показано ниже.

Not centered

А также, почему ячейка перемещается в нижнюю часть, когда справа еще есть пробелы, когда я добавляю новый столбец ( 5 столбец ), как показано ниже.

Overlap

Я пытался добавить параметр 'C' во все ячейки, связанные как
$pdf->Cell(190,7,'Some text',0,1,'C');,

А также используя $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();

?>

1 Ответ

1 голос
/ 14 мая 2019

Похоже, что переход на следующую страницу вызван этой строкой

$pdf->Cell(27,6,'JAM BERANGKAT',1,1,'C');

, содержащей 1 непосредственно перед 'C' (тот, что говорит перейти к следующей строке),Измените его на

$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();
...