TCPDF在mysql中保存页码

时间:2017-04-11 11:49:08

标签: php mysql codeigniter pdf tcpdf

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

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

输出:Day School {:pnp:}

如果我删除退出并生成pdf,那么它会显示pdf文件中的页码,如
输出: Day School 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:}。 请帮忙!

1 个答案:

答案 0 :(得分:1)

来自文档,

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));
}