【问题标题】:TCPDF save page number in mysqlTCPDF在mysql中保存页码
【发布时间】:2017-09-06 18:57:35
【问题描述】:

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

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

输出:走读学校{: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:}。 请帮忙!

【问题讨论】:

  • 添加完整的 Pdf 创建代码
  • 嗨,上传了我的代码。你能帮忙吗!

标签: php mysql codeigniter pdf tcpdf


【解决方案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));
}

【讨论】:

  • 您好,感谢您的回复。如果我添加 $pdf->PageNo() 它显示以下输出: 学校一 3 学校二 3 学校三 3 对于所有学校,它显示 3。它没有显示正确的页码。有什么问题?为什么它没有显示正确的页码?
  • 您能提供更多信息吗?如果 3 错了,你期待什么?生成的文档有多少页?
猜你喜欢
  • 2012-03-23
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
相关资源
最近更新 更多