web-dev-qa-db-ja.com

dompdfでページ番号を取得する方法PDF「ビュー」を使用する場合

わかりました。次のスニペットを使用して、PHP変数が_$data_として読み込まれるHTMLの「ビュー」を取得し、trを入力するなどの操作を実行できるようにします。データベース呼び出しなどからのデータの。

_function getView ($file, $data=NULL) {
    if (!empty($data)) extract($data);
    ob_start();
    if (is_file($file)) include($file);
    return ob_get_clean();
}
_

$htmlPDF = getView('receipt.php', array( 'orderNumber' => $orderNumber ));のようなものに使用されます。ここで、_$orderNumber_はHTMLで使用され、適切な場所に入力されます。たとえば、次のようなものです。

_<h1>You Order #<?= $orderNumber; ?></h1>
_

_$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
_

これはすべてうまく機能します。問題は、_inline php_スクリプトを機能させてページ番号/ページヘッダー|フッターを取得することです。私は指示に従いました ここ 私ができる最善のことですが、私は正しいブレンドを作ることができないようです。これまでのところ、私が得ることを除いて、エラーはありません  どこでもページ番号!

そして、はい、私は ヘッダーPDF PHPでDOMPDFを使用するページ および dompdfページ番号 のようなページを見ましたが、それでも前進はありません、まったく!_inline php_スクリプトは、HTMLを文字列として取得する方法と関係があるのだろうか?ポインタ、アイデア、アドバイスはありますか?

9
SpYk3HH

DOMPDF> = 0.7.0を使用している場合、dompdf_config.inc.phpファイル 削除されています であり、ページ番号を追加するには、少し異なるアプローチが必要になります。

Dompdf_config.inc.phpファイルはこのリリースから削除されているため(参照されなくなったため)、すべてのdompdfオプションを実行時に設定する必要があります。

PHPコードをDOMPDFで実行できるようにするには、次を使用します。

$dompdf->set_option("isPhpEnabled", true);

また、FontMetrics 今は呼び出されるはずです$fontMetricsの代わりにFont_Metricsを使用するため、@ user1231342435346354で言及されているコードはわずかに変更されます。

<script type="text/php">
if ( isset($pdf) ) { 
    $pdf->page_script('
        if ($PAGE_COUNT > 1) {
            $font = $fontMetrics->get_font("Arial, Helvetica, sans-serif", "normal");
            $size = 12;
            $pageText = "Page " . $PAGE_NUM . " of " . $PAGE_COUNT;
            $y = 15;
            $x = 520;
            $pdf->text($x, $y, $pageText, $font, $size);
        } 
    ');
}
</script>
12
Dennis Ameling

Dompdfのすべてのページのフッターにページ番号を表示する簡単なコードがあります

#footer { position: fixed; right: 0px; bottom: 10px; text-align: center;border-top: 1px solid black;}
        #footer .page:after { content: counter(page, decimal); }
 @page { margin: 20px 30px 40px 50px; }

上記のコードはcssコードです

<div id="footer">
    <p class="page">Page </p>
  </div> 

要件に応じてテキストの位置を変更できます

0