2

DOMPDF に問題があります。PHP 5.3.3 を実行しており、最新の DOMPDF 0.6.0 beta2 を使用しています。

この HTML テンプレートを作成しました。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Printed document</title>
</head>
<body>

<script type="text/php">
echo "test";
if ( isset($pdf) ) {
    echo $PAGE_NUM;
}
</script>

</body>
</html>

そして、このファイルは PDF をレンダリングします:

<?php
require_once("dompdf/dompdf_config.inc.php");

$templateFile = 'template.html';
$content = file_get_contents($templateFile); 
if ($content !== false) {
    $dompdf = new DOMPDF();
    $dompdf->load_html($content);
    $dompdf->render();
    $dompdf->stream("test.pdf");
}
?>

dompdf_config.inc.php で DOMPDF_ENABLE_PHP を true に設定しましたが、レンダリングされた PDF にテスト文字列またはページ数が表示されます。なんで?

ここに私の小さな例を圧縮しました: http://uploads.dennismadsen.com/pdf.zip

さらに情報が必要な場合は教えてください。

4

2 に答える 2

5

コードが期待どおりに機能しない理由について、あなた自身の質問に答えました。幸いなことに、ベータ 2 の DOMPDF 0.6.0 で必要なものを生成する方法があります。次のコードを試してください (インライン スクリプトは必要ありません)。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>Printed document</title>
  <style>
    .pagenum:before { content: counter(page); }
  </style>
</head>
<body>
  <p>You are currently reading page <span class="pagenum"></span>.</p>
</body>
</html>

ご覧のとおり、DOMPDF は CSS ベースのカウンターをサポートするようになり、ページ カウンターがデフォルトで実装されています。上記と同様のスタイル/要素の組み合わせを使用してください。

注: この方法を使用して総ページ数を提供する方法はまだ考えていません

于 2011-03-14T19:44:02.073 に答える
0

このバグ レポートの issue121.php という名前の添付ファイルを参照してください。

http://code.google.com/p/dompdf/issues/detail?id=121

フッターに x のページ 1 を描画するのに役立ちました

于 2011-08-24T19:23:13.713 に答える