11

我可以在每一页上打印一个标题,但我是打印页边距的新手。我认为@page css 会起作用,但它似乎不会影响页边距。如果我在正文上设置边距,它在第一页上工作,但后续页面默认从顶部边距开始,将标题放在文本顶部。

<style>  
.header {  
 position: fixed;  
 top: 0;  
}  
@page {  
 size: 11in 17in;  
 margin-left: 1in;  
 margin-right: 1in;  
 margin-top: 1in;  
 margin-bottom: 1in;  
} 
</style>

<body>  
<span class=header>This is the header</span>  
This is the text of the document. (repeat until I get to page 2)  
</body>
4

2 回答 2

9

所有浏览器的打印支持都非常糟糕,许多流行的浏览器中存在可怕的错误,这些错误多年来一直未修复。

简短的回答是,如果您需要确保特定的布局,请避免使用 HTML/CSS 打印。使用 PDF,可能是按需动态生成的。有各种 PDF 生成器 API,例如 iTextSharp。可以从 Flash 打印,但前提是安装了 Flash 并且可以正常工作(即没有 Flashblock,iOS)。

HTML/CSS 打印应仅限于简单的布局。表单打印是一场噩梦,fieldset支持legend尤其成问题(尤其是在 Firefox 上)。有趣的是,Internet Explorer 上的打印支持最好。

CSS3 打印支持规范尚未完成,有一段时间了。

一般原则:

  • 不支持背景或背景 CSS 图像(默认情况下 - 用户可以更改内部网应用程序的浏览器设置)。仅打印前景图像。

  • 由于页面大小在全球范围内变化,宽度需要保持流动。美国信函格式比 A4 布局更短更宽

  • 所有浏览器都支持以不同方式打印。虫子很多。

  • 使用打印预览进行测试。

于 2010-12-29T07:13:41.733 回答
1

现在 4 1/2 岁的公认答案说:

“简短的回答是,如果您需要确保特定的布局,请避免使用 HTML/CSS 打印。”

这些天来,您可能会在浏览器中为相对简单的布局进行 HTML/CSS 打印,或者如果您使用类似的工具wkhtmltopdf可以进行更复杂的布局。另见http://www.toccon.com/toc2013/public/schedule/detail/26714

于 2015-07-28T09:33:38.290 回答