TCPDF 页码作为 int

TCPDF Page number as int

$pdf->getAliasNumPage() 获取内容中的页码作为字符串,这不起作用。因为我正在尝试确定下一个页码。所以理论上 $pdf->getAliasNumPage() + 1;

我尝试使用 $pdf->PageNo();,但它总是如此 returns 1. 如果我将它添加到页脚 $thisPageNo() 它工作正常,但在内容中。它没有。

我正在使用 $content .= lines;

$pdf->writeHTML($content, true, 0, true, 0);

用于输出。

查看 documentationgetAliasNumPage() 只不过是占位符文本,它最终告诉 TCPDF 编译器显示当前页码。您只能使用此功能来显示您的 PDF 中的当前页码,它不能用于您尝试执行的添加等逻辑。

试一试:

echo $pdf->getAliasNumPage();
die();

至于 PageNo() 文档确实说它 returns 是一个整数,但是 这个整数仅在您不使用创建 PDF 时更新writeHTML()。只有在您自己调用 AddPage() 方法后,此整数才会递增。

这样做的原因是,当您构建 HTML 时,PageNo() 会立即执行并始终位于第 1 页。 writeHTML() 函数不知道您正在尝试将 PageNo() 用作表达式,因为整数已存在于 $content.

由于 $content 将呈现为可变高度的内容块,TCPDF 只是根据需要将其溢出到新页面上,并且 PageNo() 生成的整数将始终相同。

为了使 TCPDF 以您尝试使用它的方式工作,TCPDF 必须提供编译器能够理解和评估的表达式占位符。


至于页脚,PageNo() 有效,因为页脚函数是在 as-needed 基础上调用的。

来自文档:

Footer( )

This method is used to render the page footer. It is automatically called by AddPage() and could be overwritten in your own inherited class.

粗体部分解释了为什么 PageNo() 实际上在页脚中按预期递增。 Header() 也是如此。