TCPDF 在 mysql 中保存页码

TCPDF save page number in mysql

我正在使用 tcpdf 6.2.13 将 mysql 数据打印成 pdf 格式。 我正在创建带有学校名称和页码的自定义索引。为此,我在 foreach 循环中获取了 mysql 数据,并加载了学校 ID 以在该学校的 mysql 中存储页码。

问题是使用 TCPDF 获取页码我正在尝试遵循代码 $pdf->getAliasNumPage() 但是当我尝试将它存储在变量中时它显示为空。

输出:走读学校{:pnp:}

如果我删除退出并生成 pdf,那么它会在 pdf 文件中显示页码,如
输出:走读学校 2

为什么 $pdf->getAliasNumPage() 显示 {:pnp:} 而不显示页码?
为什么它的值不能存储到变量或数据库中?

谁能帮我把tcpdf中的页码存入数据库?这些函数 $pdf->getAliasNumPage() 显示 pdf 的页码但是当我在 mysql 查询或变量中传递它的值时它显示空为什么?

如有任何帮助,我们将不胜感激。 代码:

   $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
   $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('Nicola Asuni');
    $pdf->SetTitle('School DB');
    $pdf->SetSubject('TCPDF Tutorial');
    $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
     $PgNo= $pdf->getAliasNumPage();
    $pdf->SetFont('dejavusans', '', 10);
    $rlt = $this->db->query("SELECT `school_pageno`,`school_country_id`,`school_state_id`,`school_city_id` FROM `school` where `school_country_id` = 2 group by `school_state_id`  order by `school_state_id` asc");
     $schoolquery = $rlt->result_array();
       foreach ($schoolquery as $key => $statevalue) 
     {
     $html .= "<br/>". $statevalue['name'];
      $pnom =  $pdf->getAliasNumPage();
       $this->db->where('school_id', $statevalue['id']);
        $this->db->update('school', array('school_pageno' => $pnom));
      }
    //print_r($html);exit;
   $pdf->writeHTML($html, true, false, true, false, '');

如果我启用 print_r,页码值不起作用它显示 {:pnp:}。 请帮助!

来自文档,

https://tcpdf.org/docs/source_docs/classtcpdf/#ae11c5f52caa0df8609ec22c30cd54055

Returns 用于页码的字符串别名。如果当前字体是 unicode 类型,则返回的字符串被额外的大括号括起来。此别名将替换为页码。

这是因为在代码的那一点,它不知道页码最终会是什么,因为您还没有将 html 写入 pdf 页面。

如果要在整个循环中将 html 写入文档,则可以使用 PageNo() 方法获取当前页面

https://tcpdf.org/docs/source_docs/classtcpdf/#a9ad828b184f08828f570a7e52316ba79

例如:

foreach ($schoolquery as $key => $statevalue) 
{
    // Get Page Number
    $pnom =  $pdf->PageNo();
    // Write information to document
    $html = "<br/>". $statevalue['name'];
    $pdf->writeHTML($html, true, false, true, false, '');
    // Store page information to database
    $this->db->where('school_id', $statevalue['id']);
    $this->db->update('school', array('school_pageno' => $pnom));
}