如何在Web文档的每个打印页面上添加页眉和页脚(没有浏览器限制)?

时间:2011-03-30 21:29:48

标签: php html css printing

我正在使用CakePHP构建一个webapp(并不是真正的密切关系,但无论如何),其任务之一是生成一个包含存储在数据库中的一堆内容的网页(文章集合)。我需要能够打印此文档,并在打印文档时为每个页面包含一个简单的页眉和页脚。

此外,我无法保证文章集合中单个项目的渲染长度将小于一张纸的渲染长度,因此我无法像这样对每篇文章进行书写:< / p>

<?php echo $header; ?>
<?php echo $article; // etc. ?>
<?php echo $footer; ?>

这方面的好处是我将成为唯一一个打印这个的人(实际上将其保存为PDF),因此任何提议的解决方案都不需要与任何仍然碰巧的任何晦涩的浏览器一起使用在附近(IE6等)。

(在将此问题标记为this similar question的副本之前,请注意我不是要尝试使用IE6,而且我正在打印的内容的各个位可能会超过单页打印的页面长度。因此,这个问题的基于表格的解决方案在这里不适用 - 至少,据我所知。)

如果这需要我做一些时髦的算术来将大量连续的内容块分解成大小相似的“页面”(显然是由页脚+分页符+页眉组合分隔),我'如果没有更明智的方法可以解决这个问题,那就好了。

提前感谢您 - 如果您认为我可以提供更多信息或者让这种情况更容易解决,请发表评论。

2 个答案:

答案 0 :(得分:0)

尝试使用FPDF,它有header()和footer()作为框架的一部分。 http://www.fpdf.org/

可以处理您的分页以及页眉/页脚与PDF生成一样......

交替使用fpdf,如果您的内容可靠地分解为页面大小的块,请使用css ...

div.footer{
   page-break-after:always
}

答案 1 :(得分:0)

要处理PDF方面,请使用wkhtmltopdf - 除了通常用于生成PDF之外,还有对页眉和页脚的坚定支持。

请查看手册中的“页眉和页脚选项”部分:http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf-0.9.9-doc.html

当然,这假设您可以在服务器上运行自定义可执行文件。