Как сделать нижний колонтитул в dompdf 6.0 beta 2? - PullRequest
0 голосов
/ 04 января 2012

В последнем выпуске dompdf (domdpf beta 2) встроенный php был отключен по соображениям безопасности.Это, в свою очередь, привело к тому, что предыдущий код нижнего колонтитула / заголовка:

<script type="text/php">

if ( isset($pdf) ) {

  $font = Font_Metrics::get_font("helvetica", "bold");
  $pdf->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(0,0,0));

}
</script>

больше не работает.

Я сейчас пытаюсь воссоздать то, что этот скрипт делал с использованием CSS.До сих пор я выяснил, как заставить CSS подсчитывать страницы:

.pagenum:before { content: counter(page); }

Проблема, которую я имею, заключается в прикреплении нижнего колонтитула к нижней части страницы.Большинство учебников CSS о том, как это сделать, похоже, не работают.Вот css для моей страницы:

html,body {
     font-family:interstate;
    height:100%;
    width:100%;
    overflow:auto;
    margin-left: 40px;
    margin-right: 40px;
    margin-top: 20px;   
 margin-bottom:40px;
 min-height: 100%;
}



P.breakhere {page-break-before: always}

table
{
  border-collapse: collapse;
    page-break-inside: avoid;
  font-size:15px;

    }

td
{
border: 1px solid #000

}
.noBorder {
    border: 0
}


#header {background:#ffffff url('gradient.png') no-repeat center center;
height: 100px;

}

#text {
position:relative;
text-align:center;
padding:10px;
}



.pagenum:before { content: counter(page); }

Я надеюсь, что кто-то может предоставить мне соответствующий бит #footer, поэтому мой текст нижнего колонтитула будет правильно придерживаться нижней части страницы.

Спасибовы !!

1 Ответ

12 голосов
/ 04 января 2012

Встроенный скрипт по умолчанию отключен, но если вы чувствуете, что не подвержены каким-либо проблемам с безопасностью, вы можете безопасно включить его заново, установив для DOMPDF_ENABLE_PHP значение true.

Чтобы создать верхний / нижний колонтитул с использованием HTML + CSS, вы должны использовать элемент с фиксированной позицией.

CSS

#footer {
  position: fixed;
  bottom: 0px;
  left: 0px;
  right: 0px;
  height: 100px;
  text-align: center;
  background-color: lightgray;
  border-top: 2px solid gray;
}
.pagenum:before {
  content: counter(page);
}

HTML

<div id="footer">
  <p>page <span class="pagenum"></span></p>
</div>

Основным недостатком метода HTML + CSS является то, что в настоящее время нет способа получить общее количество страниц с помощью этого метода.

...