fpdf добавить заголовок и заголовок таблицы на каждой странице - PullRequest
0 голосов
/ 31 августа 2018
<?Php
require('fpdf/fpdf.php');
$host = "localhost"; 
$username = "root"; 
$password = "";  
$db_name = "Students"; 

$con = new mysqli($host, $username, $password, $db_name);

$count = "SELECT * FROM class";

$pdf = new FPDF(); 
$pdf->AddPage();

$width_cell=array(70,40,30,30,20);
$pdf->SetFont('Arial','B',12);

$pdf->SetFillColor(193,229,252);

$pdf->Cell($width_cell[0],10,'ID No',1,0,'C',true);
$pdf->Cell($width_cell[1],10,'Name',1,0,'C',true);
$pdf->Cell($width_cell[2],10,'Surname',1,0,'C',true); 
$pdf->Cell($width_cell[3],10,'Cell No',1,0,'C',true);
$pdf->Cell($width_cell[4],10,'Teacher',1,1,'C',true); 

$pdf->SetFont('Arial','',11);
$pdf->SetFillColor(235,236,236); 
$fill=false;


foreach ($con->query($count) as $row) {
$pdf->Cell($width_cell[0],10,$row['Id_no'],1,0,'C',$fill);
$pdf->Cell($width_cell[1],10,$row['Name'],1,0,'C',$fill);
$pdf->Cell($width_cell[2],10,$row['Surname'],1,0,'C',$fill);
$pdf->Cell($width_cell[3],10,$row['CellNO'],1,0,'C',$fill);
$pdf->Cell($width_cell[4],10,$row['Teacher'],1,1,'C',$fill);
$fill = !$fill;
}

$pdf->Output();
?>

Вопрос : Как добавить заголовок вверху моей страницы для каждой страницы. и заголовок таблицы на каждой странице. Я боролся, и я попробовал учебную страницу fpdf на сайте. Но я все еще не могу заставить его работать

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Я считаю, что вы должны расширить класс Fpdf и разработать полный раздел заголовка и раздел нижнего колонтитула, который перезапишет заголовок и нижний колонтитул по умолчанию. Смотрите следующий пример.

class PDF extends FPDF
{
// Page header
function Header()
{

    $this->SetFillColor(54,80,104);
    $this->SetDrawColor(150,150,150);
    $this->Rect(0,0,220,50,'F');

    $this->SetFont('helvetica','B',18);
    $this->SetTextColor(255,255,255);
    $this->SetXY(10,5);
    $this->Cell(100,15,"My Title",0,0,'R');


}

// Page footer
function Footer()
{
    $this->SetY(-10);
    $this->SetFont('helvetica','I',7);

    $this->SetXY(100,-22);
    $this->Cell(100,15,'My Footer',0,0,'L');



}
}

Тогда вместо использования

$pdf = new FPDF(); 

Вы должны использовать

$pdf = new PDF(); 

Таким образом, один и тот же верхний и нижний колонтитулы будут применяться ко всем вашим страницам

0 голосов
/ 31 августа 2018

Ожидаемый способ сделать это, по крайней мере, из комментариев в FPDF, - наследовать от базового класса FPDF и реализовать метод Header:

use Fpdf\Fpdf;

class MyPdf extends Fpdf {
    function Header() {
        $this->Cell(100, 100, 'TITLE');
    }
}

$pdf = new MyPdf();

Кроме того, существует метод Footer, который можно переопределить таким же образом, если на каждой странице требуется нижний колонтитул.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...