Привет, я использую DOMPDF для создания PDF-файла, я хотел бы знать, как получить номер страницы.
Я попробую следующее, упомянув на странице часто задаваемых вопросов DOMPDF. и не удалось. ПРИМЕЧАНИЕ. У меня также есть встроенный PHP, а также упоминается в FAQ
следующий мой код
<?php require_once("dompdf/dompdf_config.inc.php"); ob_start(); //be sure this file exists, and works outside of web context etc.) $dompdf = new DOMPDF(); $html=" <script type='text/php'>"; if ( isset($pdf) ) { $font = Font_Metrics::get_font("yourfont", "normal"); $size = 9; $y = $pdf->get_height() - 24; $x = $pdf->get_width() - 15 - Font_Metrics::get_text_width("1/1", $font, $size); $pdf->page_text($x, $y, "{PAGE_NUM}/{PAGE_COUNT}", $font, $size); } $html.=" </script>"; $html .=" aaaaa<br/>aaaaaa<br/>aaaaaa<br/>aaaaa<br/>aaaaaa<br/>aaaaaa<br/>aaaa<br/>aaaaa<br/>aaaaaa<br/>aaaaa<br/> aaaaa<br/>aaaaaaa<br/>aaaaaa<br/> aaaaa<br/>aaaaaa<br/> aaaaaaa<br/>aaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/> aaaaaaa<br/>aaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/> aaaaaaaa<br/>aaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/> aaaaaaaa<br/>aaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/> aaaaaaaa<br/>aaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/> aaaaaaaaa<br/>aaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/> aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/>aaaaaaaaaaaaaaaaa<br/> </body></html>"; $dompdf->load_html($html); $dompdf->render(); $dompdf->stream("sample.pdf"); ?>
Может кто-нибудь указать мне эту проблему? где я сделал это неправильно
Вы запускаете свой встроенный скрипт как часть PHP-страницы, а не передаете его в dompdf. Ваш код может быть записан следующим образом (усечен в соответствующем разделе):
... $html=" <html> <body> <script type='text/php'> if ( isset($pdf) ) { $font = Font_Metrics::get_font('helvetica', 'normal'); $size = 9; $y = $pdf->get_height() - 24; $x = $pdf->get_width() - 15 - Font_Metrics::get_text_width('1/1', $font, $size); $pdf->page_text($x, $y, '{PAGE_NUM}/{PAGE_COUNT}', $font, $size); } </script> "; ...
Обратите внимание, что встроенный скрипт должен теперь отображаться внутри элемента BODY. В противном случае во время обработки документа он будет игнорироваться.
Есть и другие способы добиться того, чего вы хотите .
Где вы используете 1/1, чтобы получить $ x, это не сработает, если у вас более 10 страниц.
Возможное решение означает редактирование «cpdf_adapter.cls.php», поэтому функция _add_page_text () использовала следующее сразу после str_replace () … о строке 790:
if ($x < 0) $x = (($this->_width + $x) - $this->get_text_width($text, $font, $size)); if ($y < 0) $y = (($this->_height + $y) - $this->get_font_height($font, $size));
Идея состоит в том, что вы можете передать отрицательные координаты x / y, и они будут работать с правыми / нижними краями.
Затем в HTML, отправленном в DOMPDF, я использовал:
<script type="text/php"> $pdf->page_text(-30, -32, "{PAGE_NUM} of {PAGE_COUNT}", Font_Metrics::get_font("serif"), 10, array(0,0,0)); </script>
Или, если вы хотите указать x / y в px:
<script type="text/php"> $pdf->page_text(((-30 * 72) / DOMPDF_DPI), ((-32 * 72) / DOMPDF_DPI), "{PAGE_NUM} of {PAGE_COUNT}", Font_Metrics::get_font("serif"), 10, array(0,0,0)); </script>