我使用的是this,它可以帮助我创建不同的页面组。我有两个主要问题。首先,我正在使用PHP 7.3
,并且我不想使用旧版本的PHP
,因为我还有其他正在使用PHP 7.3
的代码。第一个问题出现在第33行文件- pagegroup.php :
$n = sizeof($this->PageGroups) + 1;
我遇到错误
sizeof():参数必须是实现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/1
和1/1
。
答案 0 :(得分:0)
我设法使其在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 ...
}
}