是否有可能在每个打印页面上打印带有自定义页眉和页脚的HTML页面?

我想在每个打印页面的顶部和底部添加“UNCLASSIFIED”字样,字体为红色,Arial,大小为16pt,无论内容如何。

为了澄清,如果文档打印到5页上,那么每页都应该有自定义页眉和页脚。

有人知道使用HTML/CSS是否可行吗?


当前回答

如果你可以使用javascipt,让客户端处理使用javascript布局内容,根据可用空间放置元素。

你可以使用jquery columnizer插件在固定大小的块中动态布局你的内容,并将你的页眉和页脚作为渲染例程的一部分。 http://welcome.totheinter.net/columnizer-jquery-plugin/

参见例10 http://welcome.totheinter.net/autocolumn/sample10.html

如果在操作系统中启用,浏览器仍然会添加自己的页眉或页脚。跨平台和浏览器的一致布局可能需要有条件的css。

其他回答

多年来,我一直在寻找一个解决方案,并找到了这篇关于如何在多个页面上打印一个页脚而不重叠页面内容的文章。

我的要求是IE8,到目前为止,我发现这不能在Chrome中工作。从2018年3月1日起,它也可以在Chrome浏览器中使用

下面的例子通过设置css样式来使用表格和tfoot元素:

tfoot {display: table-footer-group;}

如果你想要作为页脚的元素,并将其设置为position:fixed和bottom:0,当页面打印时,它将在每个打印页面的底部重复该元素。同样的方法也适用于头元素,只需将top:0改为。

例如:

<div class="divFooter">UNCLASSIFIED</div>

CSS:

@media screen {
  div.divFooter {
    display: none;
  }
}
@media print {
  div.divFooter {
    position: fixed;
    bottom: 0;
  }
}

@Daniel在2012年对缺乏CSS3特性支持的问题做了一个评论:顶部中心和底部中心。

好吧,在Chrome 73+,下面的片段工作,其中页眉和页脚是<header></header>和<footer></footer>元素定义在页面内。

@page {
    @top-center { content: element(header) }
}
@page { 
    @bottom-center { content: element(footer) }
}

我找到了一个解决这个问题的方法:

当你用“page”className分隔每一页时,你可以给“page”这个样式:

.page{
  height: 1150px;
  page-break-after: always;
  overflow: hidden;
}

检查打印页面的预览,确保所有内容都在页面内,否则移动内容,让所有内容看起来都很整齐。

最好的解决方案来自biskrem muhammad。

但它的答案有一个小问题。当页数大于1时,页脚不在最后一页的页脚。

将这个小CSS添加到由footer-info折叠的元素中

position: fixed;
bottom: 0;