php - 如何使表格页眉和表格页脚出现在每一页上?
问题描述
表格页脚和页眉仅出现在页面的开头和结尾。我正在使用 FPDF。
这是代码:
$pdf = new myPDF();
$pdf->AliasNbPages('{nb}');
$pdf->AddPage('L', 'A4', 0);
$pdf->headerTable();
$pdf->viewTable($con);
$pdf->footerTable();
$pdf->Output();
这是 myPDF 类:
<?php
$con = new PDO('mysql:host=localhost;dbname=db_tc', 'root', '');
require('function.php');
require('fpdf/fpdf.php');
class myPDF extends FPDF
{
function header()
{
$this->SetleftMargin(30);
$this->SetFont('Times', 'B', 14);
$this->Cell(0, 10, 'Office 1', 0, 0, 'C');
$this->Ln(20);
}
function footer()
{
$this->SetY(-15);
$this->SetFont('Times', '', 8);
$this->Cell(0, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
}
function headerTable()
{
$this->SetleftMargin(20);
$this->SetFillColor(255, 213, 31);
$this->SetDrawColor(50, 50, 100);
$this->SetFont('Times', 'B', 12);
$this->Cell(15, 10, 'Nomor', 1, 0, 'C', true);
$this->Cell(40, 10, 'Tanggal Cek', 1, 0, 'C', true);
$this->Cell(40, 10, 'Type Unit', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number2', 1, 0, 'C', true);
$this->Cell(30, 10, 'Lokasi', 1, 0, 'C', true);
$this->Cell(30, 10, 'Ruangan', 1, 0, 'C', true);
$this->Ln();
}
function footerTable()
{
$this->SetleftMargin(30);
$this->SetFillColor(255, 213, 31);
$this->SetDrawColor(50, 50, 100);
$this->SetFont('Times', 'B', 12);
$this->Cell(15, 10, 'Nomor', 1, 0, 'C', true);
$this->Cell(40, 10, 'Tanggal Cek', 1, 0, 'C', true);
$this->Cell(40, 10, 'Type Unit', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number2', 1, 0, 'C', true);
$this->Cell(30, 10, 'Lokasi', 1, 0, 'C', true);
$this->Cell(30, 10, 'Ruangan', 1, 0, 'C', true);
$this->Ln();
}
function viewTable($con)
{
$this->SetleftMargin(30);
$this->SetFont('Times', '', 12);
$this->SetFillColor(224, 224, 224);
$stmt = $con->query("SELECT * FROM officepakai");
while ($data = $stmt->fetch(PDO::FETCH_OBJ)) {
$this->Cell(15, 10, $data->Nomor, 1, 0, 'C', true);
$this->Cell(40, 10, $data->Tanggal_Cek, 1, 0, 'L', true);
$this->Cell(40, 10, $data->Type_Unit, 1, 0, 'L', true);
$this->Cell(40, 10, $data->Serial_Number, 1, 0, 'L', true);
$this->Cell(40, 10, $data->Serial_Number2, 1, 0, 'L', true);
$this->Cell(30, 10, $data->Lokasi, 1, 0, 'L', true);
$this->Cell(30, 10, $data->Ruangan, 1, 0, 'L', true);
$this->Ln();
}
}
}
$pdf = new myPDF();
$pdf->AliasNbPages('{nb}');
$pdf->AddPage('L', 'A4', 0);
$pdf->headerTable();
$pdf->viewTable($con);
$pdf->footerTable();
$pdf->Output();
?>
解决方案
我没有使用过这个库,但根据这里的文档,我会说只有 Header 和 Footer 方法被调用,但你似乎有一些自定义称为headerTable
and footerTable
。
Header()
and方法是自动调用的Footer()
,所以我相信调用其中的自定义方法应该可以解决问题:
function Header()
{
$this->SetleftMargin(30);
$this->SetFont('Times', 'B', 14);
$this->Cell(0, 10, 'Office 1', 0, 0, 'C');
$this->Ln(20);
$this->headerTable(); // add this
}
function Footer()
{
$this->SetY(-15);
$this->SetFont('Times', '', 8);
$this->Cell(0, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
$this->footerTable(); // add this
}
推荐阅读
- python - Pandas 数据框中的二值化列
- python - TypeError:从字符串中删除最后 3 个字符时,'float' 对象不可下标
- r - R 新手,需要计算我运行 while 循环的时间
- c# - 重定向后单击链接时页面 URL 重复
- reactjs - 与使用可变数据结构相比,为什么插入不可变的 trie 只会慢一个常数时间?
- php - (php,laravel)如何通过foreach循环从分组数组中插入多张图片到数据库中
- mysql - 对于 MYSQL 5.7.31 - 应该为传输连接更改哪个超时变量:连接超时
- python - 如何在 python 中使用枚举来增加行位置
- python - Python,从关键字打印到下一个点
- powershell - Powershell脚本通过ssh登录并发送返回