php-TCPDFはmysqlにページ番号を保存します
tcpdf 6.2.13を使用してmysqlデータをpdf形式で印刷しています。 学校名とページ番号でカスタムインデックスを作成しています。そのために、foreachループでmysqlデータをフェッチし、学校IDを読み込んで、その学校のmysqlにページ番号を保存しました。
問題はTCPDFを使用して、コード$ pdf-> getAliasNumPage()に従ってページ番号を取得しようとしていますが、変数に格納しようとすると空になります。
出力:デイスクール{:pnp:}
exitを削除して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));
}
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。