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