我正在使用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

返回用于页码的字符串别名。如果当前字体是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));
}

关于php - TCPDF在mysql中保存页码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43345068/

10-10 18:12