使用PHP中的DOMPDF的PDF页面中的标题

我正在使用DOMPDF创build一个PDF文件。 我有一个很大的内容来提取PDF,我们需要在所有页面的一些标题。 所以任何人都可以打电话怎么在PDF中添加一个页眉和页脚,这样页眉就会在使用DOMPDF的所有页面中显示出来。

在0.6.0代码中,您将能够使用HTML + CSS来生成页眉和页脚。 与使用内联PHP相比,有一些限制(例如,没有PAGE_COUNT占位符),所以这是否可行取决于您的需求。

以下代码将生成一个包含页眉和页脚的双页文档 :

<html> <head> <style> @page { margin: 180px 50px; } #header { position: fixed; left: 0px; top: -180px; right: 0px; height: 150px; background-color: orange; text-align: center; } #footer { position: fixed; left: 0px; bottom: -180px; right: 0px; height: 150px; background-color: lightblue; } #footer .page:after { content: counter(page, upper-roman); } </style> <body> <div id="header"> <h1>Widgets Express</h1> </div> <div id="footer"> <p class="page">Page </p> </div> <div id="content"> <p>the first page</p> <p style="page-break-before: always;">the second page</p> </div> </body> </html> 

如果您需要访问某些缺less的function,也可以使用这两种样式的组合。 使用page_text方法添加的PDF对象和文本呈现在HTML内容之上。

在DOMPDF wiki上有一个FAQ条目: 是否有添加页眉和页脚或页码的方法?

所以你可以添加下面的“inline PHP”-snippet到你的HTMLinput中(为你的页脚添加一个类似的page_text ):

 <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> 

如果你想在你的调用者端实现这个(在PHP代码中直接),你必须调用DOMPDFS的get_canvas()方法,它返回底层的PDF-Renderer,它允许你调用page_text方法以上。 让我告诉你我的意思:

 // your dompdf setup $dompdf = new DOMPDF(); $dompdf->load_html($html); $dompdf->render(); // add the header $canvas = $dompdf->get_canvas(); $font = Font_Metrics::get_font("helvetica", "bold"); // the same call as in my previous example $canvas->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(0,0,0)); 

最后,你必须在page_text之后调用page_text (试试看)。