在 fPDF/tfPDF 中创建编号页面组

Creating groups of numbering pages in fPDF/tfPDF

我正在使用 this 插件,它可以帮助我创建不同的页面组。我有两个主要问题。首先,我正在使用 PHP 7.3,我不想使用旧版本的 PHP,因为我有其他代码正在使用 PHP 7.3。第一个问题出现在 行 33 文件 - pagegroup.php:

$n = sizeof($this->PageGroups) + 1;

我遇到错误

sizeof(): Parameter must be an array or an object that implements Countable

我试图用这些代码更改这一行

if (empty($this->PageGroups)) {
    $n = 1;
} else {
    $n = count($this->PageGroups)+1;
}

有人可以确认我这工作正常吗,因为我的第二个问题是当我输入 此代码:

require 'lib/pagegroup.php';

class MYPDF extends PDF_PageGroup {
    function Header() {
        $this->Cell(0, 6, 'Page '.$this->GroupPageNo().'/'.$this->PageGroupAlias(), 0, 0, 'C');
    }

    for ($i = 0; $i < 2; $i++) {

    $pdf->StartPageGroup();
    $pdf->AddPage();

    // some other code ...
    }
}

GroupPageNo 运行良好,但 PageGroupAlias 正在返回 {nb1},对于组页面 2,它正在返回 {nb2}.所以我最终得到 1/{nb1}1/{nb2},最终结果应该是 1/11/1 例如。

我设法让它在 PHP 7.3 下工作。这是我在方法 _beginpage 中的工作代码 我更改了这一行:

$n = sizeof($this->PageGroups)+1;

这些行:

if (empty($this->PageGroups)) {
    $n = 1;
} else {
    $n = count($this->PageGroups) + 1;
}

其他最重要的事情是它必须将字体系列设置为 Arial 否则它不起作用并且显示 {nb2}。所以它应该是这样的。

require 'lib/pagegroup.php';

class MYPDF extends PDF_PageGroup {
    function Header() {
        $this->AddFont('DejaVuSans', '', 'DejaVuSans.ttf', true);
        $this->SetFont('Arial', '', 10);
        $this->Cell(0, 6, 'Page '.$this->GroupPageNo().'/'.$this->PageGroupAlias(), 0, 0, 'C');
        // change the font to the one you want to use in my case DajaVu
        $this->SetFont('DejaVuSans', '', 16);
    }

    for ($i = 0; $i < 2; $i++) {

    $pdf->StartPageGroup();
    $pdf->AddPage();

    // some other code ...
    }
}