San*_*ndy 36 php pdf-generation dompdf
我正在使用DOMPDF创建一个PDF文件.我有一个很大的内容要提取PDF格式,我们需要在所有页面中都有一些标题.因此,任何人都可以在PDF中添加页眉和页脚,以便使用DOMPDF在所有页面中显示标题.
Bri*_*anS 61
在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>
Run Code Online (Sandbox Code Playgroud)
如果需要访问某些缺少的功能,也可以使用这两种样式的组合.使用该page_text方法添加的PDF对象和文本呈现在HTML内容之上.
vst*_*stm 20
DOMPDF维基上有一个FAQ条目:有没有办法添加页眉和页脚或页码?.
因此,您可以将以下"内联PHP"-snippet添加到HTML输入中(page_text为页脚添加类似的-call):
<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>
Run Code Online (Sandbox Code Playgroud)
如果你想在调用者端实现这个(直接在PHP代码中),你必须调用DOMPDFS的get_canvas()-method,它返回底层的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));
Run Code Online (Sandbox Code Playgroud)
最终,你必须调用page_text后load_html(只是尝试一下).
Jso*_*owa 11
定义文档的页眉、页脚和内容如下:
<html>
<head>
<style>
@page {
margin: 100px 25px;
}
header {
position: fixed;
top: -60px;
height: 50px;
background-color: #752727;
color: white;
text-align: center;
line-height: 35px;
}
footer {
position: fixed;
bottom: -60px;
height: 50px;
background-color: #752727;
color: white;
text-align: center;
line-height: 35px;
}
</style>
</head>
<body>
<header>
Header
</header>
<footer>
Footer
</footer>
<main>
<!-- Your main content -->
</main>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50184 次 |
| 最近记录: |