DOMPDF: встроенный PHP-скрипт не работает - PullRequest
2 голосов
/ 14 марта 2011

У меня проблема с DOMPDF.Я использую PHP 5.3.3 и имею новейшую бета-версию DOMPDF 0.6.0.

Я создал этот шаблон 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

Пожалуйста, скажите мне, если вам нужна дополнительная информация.

Ответы [ 2 ]

5 голосов
/ 14 марта 2011

Вы ответили на свой вопрос, почему код работает не так, как ожидалось.К счастью, в DOMPDF 0.6.0 есть способ произвести то, что вы хотите, начиная с бета-версии 2. Попробуйте следующий код (нет необходимости в встроенном скрипте):

<!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, со счетчиком страниц, реализованным по умолчанию.Просто используйте комбинацию стиля / элемента, подобную приведенной выше.

Примечание: мы еще не нашли способ предоставить общее количество страниц с использованием этого метода .

0 голосов
/ 24 августа 2011

См. Вложение с именем Issue121.php в этом отчете об ошибках.

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

Мне удалось нарисовать страницу 1 из x в нижнем колонтитуле

...