MPDFライブラリを使用してPDFドキュメントの場合、生成されたページの数を取得する方法を誰かが知っていますか?
これをメインのmPDFクラスに追加します。
function getPageCount() {
return count($this->pages);
}
次に、HTMLパーサーなどの文字列を追加します。
$html = str_replace('{PAGECNT}', $this->getPageCount(), $html);
これらのアクションの後で、解析されたHTMLに{PAGECNT}を直接挿入して、結果を取得できます。これは、ページを示す必要がある場合に便利です。
EYiiPdf(Yii上のmPDFのラッパー)を使用しているときに同じ機能を探していたところ、次のものが魅力のように機能しました。
$mPDF->setFooter('{PAGENO} / {nb}');
私はmPDFのソースをチェックし、これをmpdf.php:1656(バージョン5.4)で見つけました:
function AliasNbPages($alias='{nb}') {
//Define an alias for total number of pages
$this->aliasNbPg=$alias;
}
それが役に立てば幸い!
次のように{nbpg}を使用できます
<div align="center"><b>{PAGENO} / {nbpg}</b></div>
元のドキュメントで答えを見つけることができます:
http://mpdf1.com/manual/index.php?tid=314
置換エイリアス{nb}および{nbpg}総数
および{PAGENO}現在のページ番号
ページ数を返してデータベースに保存したり、mpdf以外の操作を実行したりする場合は、この方法で簡単に取得できます。
コンテンツを書き込んだ後:
$ mpdf-> WriteHTML($ html);
$ page_count = $ mpdf->ページ;
$ mpdf-> Output();
次の行に注意してください。
preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$hd);
mpdf.php関数Footer()では、「{PAGENO}/{nb}」が表示されない場合があります。コメントアウトするか、strpos('{DATE' > -1)
を使用して、使用可能かどうかを確認してください。また、以下を追加する必要がある場合があります。
$mpdf->ignore_invalid_utf8 = true;
また、フッター行が不要な場合:
$mpdf->defaultfooterline = false;
これらの変更後、ようやくページネーションが機能しました。