0

在最新的 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 位,以便我的页脚文本正确地贴在页面底部。

谢谢!!

4

1 回答 1

12

默认情况下禁用内联脚本,但如果您认为自己不容易受到任何安全问题的影响,您可以通过将其设置DOMPDF_ENABLE_PHPtrue.

要使用 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 方法的主要缺点是目前无法使用该方法获取页面总数。

于 2012-01-03T22:26:55.770 回答