使用 TCPDF 扣除 pdf 中的页数


Deduct number of pages in pdf using TCPDF

我正在使用TCPDF生成PDF。前两页是:1)非正式信件,2)由于双面打印而空白页。在第 3 页到最后一页,生成了一个调查。我想只在调查页面上添加页码。

到目前为止,我已经使用一种Footer()方法设置了我的类,该方法仅显示第 3 页的页脚,但我无法让它将页数减去 2。

  • 我一直在尝试将$this->getAliasNbPages()转换为整数,但是我相信这种方法放了一个占位符,它只是被替换在显示 PDF 之前。
  • 我也一直在使用$this->getNumPages()但这只返回到目前为止制作的页数。所以我的页码看起来像1/1, 2/2, 3/3 ...

有什么建议吗?

有时,在写问题时,我会暗示自己寻找解决方案。如果有人想知道如何做到这一点,这里开始。

我假设在发布 PDF 之前替换占位符是正确的。这当然是实现此结果的便捷方法。所以我开始在TCPDF类中寻找ptp定义。在路上的某个地方,您将到达第 7890 行,这是 _putpages() 方法的一部分(至少在 TCPDF 6.2.8 中):

$ptpa = TCPDF_STATIC::formatPageNumber(($this->starting_page_number + $this->numpages - 1));

我尝试手动将数字更改为 - 3。瞧。它减去总页数 2。

为了使它更适用于将来的需求,我将 7890 行替换为:

$ptpa = $this->_getPTPAVariable();

并在 de TCPDF 类中添加了一个方法:

protected function _getPTPAVariable()
{
    return TCPDF_STATIC::formatPageNumber(($this->starting_page_number + $this->numpages - 1));
}

我将相同的方法添加到我的SurveyLetter类(从 TCPDF 类扩展而来),只减去了另外两页:

protected function _getPTPAVariable()
{
    return TCPDF_STATIC::formatPageNumber(($this->starting_page_number + $this->numpages - 3));
}

希望将来对任何人有所帮助!