2

我有一个页面,其中有部分作为具有内部 div 和内容的 div。打印时,div 的数量从少于一页到多页变化很大。

我正在使用 page-break-inside: 避免在每个部分 div 上,以便所有部分永远不会打印/拆分跨 2 页。(这我只能在 Firefox 中工作,但整个其他故事......!)。

问题是我想在打印时将页眉图像添加到每页的顶部,但使用 page-break-inside:避免 css 属性我不知道在哪里添加页眉,因为这是在打印时工作的。

任何人都知道我能做到这一点吗?我能以某种方式找出分页符的位置并在那里添加标题吗?或者有没有一种方法可以在浏览器中设置标题图像,就像你可以在 word 文档等中一样?

请帮助非常感谢瑞克

4

2 回答 2

0

从 JS/HTML/CSS 控制打印页面是不可能的,因为您无法访问打印驱动程序,因此您无法知道用户设置的纸张尺寸或边距。

为了解决这个问题,您可以使用一个组件从您的 HTML 创建 PDF,这样您就可以更好地控制布局。那必须在服务器端完成。

于 2010-01-14T22:59:31.810 回答
0

我没有看到任何使用 CSS2 ( spec ) 添加标题信息的方法。有一种方法可以使用 CSS3(链接规范)将 TEXT 添加到“页眉” 。我不确定这是否也会涵盖图像,但这是一个开始。您将需要考虑 CSS3的采用,以及它是否适合您的业务需求(从 wikipedia 链接看来,只有 Opera 支持 @page 选项,但该信息可能已过时)。

我不认为您可以在格式化打印时使用 javascript 将标题注入每个页面。我不知道如何做到这一点(但我可能错了)。

您可以做的是定义一个在浏览器页面上不可见但显示在打印页面上的 div。这样的事情应该这样做:

<STYLE type="text/css">
@media print {
div.header {display:block;}
}
@media screen {
div.header {display:none;}
}
</STYLE>

然后,您可以在强制分页后放置一个包含标题的 div。这应该对你有用,可能会使用进一步的 CSS 来强制这个 div 与页面顶部对齐等。当然,这也需要你使用强制分页符,这意味着你需要提前知道多少您可以适合页面的数据,并不理想。

希望这可以帮助。

于 2010-01-14T23:53:28.300 回答