我正在使用Codeigniter,我成功实施了dompdf来生成PDF文件。现在我在生成的PDF中添加页眉和页脚时遇到问题。
这是我的dompdf_helper代码:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
function pdf_create($html, $filename='', $stream=TRUE)
{
require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->set_paper("A4");
if ($stream) {
$dompdf->stream($filename.".pdf",1);
} else {
return $dompdf->output();
}
}
?>
这是我的控制器调用PDF生成:
<?php
$data['store']=$res;
$this->load->helper(array('dompdf', 'file'));
$html = $this->load->view('store/sales_pdf', $data, true);
$html.= $this->load->view('footer');
$filename="salesbill".$id;
pdf_create($html, $filename);
$data = pdf_create($html, '', false);
write_file('name', $data);
?>
我使用此脚本获取页码,但仅在第二页退出时打印,否则将无法打印。
<script type="text/php">
if ( isset($pdf) ) {
$font = Font_Metrics::get_font("helvetica", "bold");
$pdf->page_text(500,10, "Page: {PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(0,0,0));
}
</script>
我想在页面中打印公司名称和联系方式以及帐单号作为标题,然后在页脚中打印。我想添加一个像“1/3”的页码。
答案 0 :(得分:21)
我希望这有助于您了解如何在dompdf中获取页眉和页脚。也请查看此链接.... Example
<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 <?php $PAGE_NUM ?></p>
</div>
<div id="content">
<p>the first page</p>
<p style="page-break-before: always;">the second page</p>
</div>
</body>
</html>
答案 1 :(得分:11)
我还尝试将PHP代码添加到html中,但从来没有机会让它工作。这是我保证的完整内联代码:
require_once("dompdf_config.inc.php");
$html ='<html>
<body>
<p>Hello Hello</p><p style="page-break-after:always;page-break-before:always">Hello Hello 2</p><p>Hello Hello 3</p>
</body>
</html>';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$canvas = $dompdf->get_canvas();
$font = Font_Metrics::get_font("helvetica", "bold");
$canvas->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(0,0,0));
$dompdf->stream("my_pdf.pdf", array("Attachment" => 0));
?>
答案 2 :(得分:0)
<style>
/**
Set the margins of the page to 0, so the footer and the header
can be of the full height and width !
**/
@page {
margin: 0cm 0cm;
}
/** Define now the real margins of every page in the PDF **/
body {
margin-top: 4cm;
margin-left: 2cm;
margin-right: 2cm;
margin-bottom: 4cm;
}
/** Define the header rules **/
header {
position: fixed;
top: 2cm;
left: 2cm;
right: 2cm;
height: 2cm;
/** Extra personal styles
background-color: #03a9f4;
color: white;
**/
text-align: center;
line-height: 1.5cm;
}
/** Define the footer rules **/
footer {
position: fixed;
bottom: 0cm;
left: 0cm;
right: 0cm;
height: 2cm;
/** Extra personal styles **/
background-color: #03a9f4;
color: white;
text-align: center;
line-height: 1.5cm;
}
</style>
<header>
<table class="table table-bordered" border='1' width='100%' style='font-size:16px; border-collapse: collapse;/* border-collapse: separate; border-spacing: 30px;*/'>
<tr>
<th scope="col" style="padding:10px;" width="10%">Clause No.</th>
<th scope="col" style="padding:10px;" width="80%">INSTRUCTIONS TO BIDDERS</th>
</tr>
</table>
</header>
<?php endif;?>
<footer>
Copyright © <?php echo date("Y");?>
</footer>
使用页眉页脚标记