web-dev-qa-db-ja.com

mPDFドキュメントのページ数を取得するにはどうすればよいですか?

MPDFライブラリを使用してPDFドキュメントの場合、生成されたページの数を取得する方法を誰かが知っていますか?

20
Nikita Gopkalo

これをメインのmPDFクラスに追加します。

function getPageCount() {
    return count($this->pages);
}

次に、HTMLパーサーなどの文字列を追加します。

$html = str_replace('{PAGECNT}', $this->getPageCount(), $html);

これらのアクションの後で、解析されたHTMLに{PAGECNT}を直接挿入して、結果を取得できます。これは、ページを示す必要がある場合に便利です。

3
Nikita Gopkalo

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

それが役に立てば幸い!

27
Tomi Drpic

次のように{nbpg}を使用できます

<div align="center"><b>{PAGENO} / {nbpg}</b></div>
13
Zvonimir Burić

元のドキュメントで答えを見つけることができます:
http://mpdf1.com/manual/index.php?tid=314
置換エイリアス{nb}および{nbpg}総数
および{PAGENO}現在のページ番号

5
sr9yar

ページ数を返してデータベースに保存したり、mpdf以外の操作を実行したりする場合は、この方法で簡単に取得できます。

コンテンツを書き込んだ後:
$ mpdf-> WriteHTML($ html);

$ page_count = $ mpdf->ページ;

$ mpdf-> Output();

4
John F

次の行に注意してください。

preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$hd);

mpdf.php関数Footer()では、「{PAGENO}/{nb}」が表示されない場合があります。コメントアウトするか、strpos('{DATE' > -1)を使用して、使用可能かどうかを確認してください。また、以下を追加する必要がある場合があります。

$mpdf->ignore_invalid_utf8 = true;

また、フッター行が不要な場合:

$mpdf->defaultfooterline = false;

これらの変更後、ようやくページネーションが機能しました。

0
Goce Dimkovski