打印HTML页面时的边距

我正在使用单独的样式表进行打印。 是否可以在设置打印边距的样式表中设置左右页边距(即纸张边距)。

谢谢。

指定打印时,应使用cmmm作为单位。 使用像素会使浏览器将其翻译成与屏幕上显示的内容类似的内容。 使用cmmm将确保纸张尺​​寸一致。

 body { margin: 25mm 25mm 25mm 25mm; } 

对于字体大小,请使用pt作为打印介质。

请注意,以css样式设置页边空白将不会调整打印机驱动程序中用于定义打印机可打印区域或页边距控制页边距的边距(可在某些浏览器的打印预览中进行调整)。将只在可打印区域内的文档上设置边距。

你也应该知道,IE7 ++会自动resize以适应最佳状态,即使使用cmmm也会导致错误。 要覆盖此行为,用户必须select“打印预览”,然后将打印尺寸设置为100% (默认为“ Shrink To Fit )。

对打印页边空白完全控制的更好select是使用@page指令设置纸张边距,这将影响通常由浏览器控制的html body元素外部的纸张边距。 见http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html
这目前适用于除Safari之外的所有主stream浏览器。
在Internet Explorer中,页边距实际上在此打印设置中设置为此值,如果您执行了“预览”,则会将其设置为默认值,但用户可以在预览中对其进行更改。

 @page { size: auto; /* auto is the initial value */ /* this affects the margin in the printer settings */ margin: 25mm 25mm 25mm 25mm; } body { /* this affects the margin on the content before sending to printer */ margin: 0px; } 

相关的答案: 从页面禁用浏览器打印选项(页眉,页脚,边距)?

我个人build议使用与px不同的度量单位。 我不认为这些像素在打印方面有很大的相关性, 理想情况下,你会使用:

  • 点(点)
  • 厘米(cm)

我确信还有其他的,关于print-css的一篇很好的文章可以在这里find:由Eric Meyer 打印 。

更新的简单解决scheme

 @media print { body { display: table; table-layout: fixed; padding-top: 2.5cm; padding-bottom: 2.5cm; height: auto; } } 

旧解决scheme

创build每个页面的部分,并使用下面的代码来调整边距,高度和宽度。

如果您正在打印A4尺寸。

然后用户

尺寸:8.27英寸和11.69英寸

 @page Section1 { size: 8.27in 11.69in; margin: .5in .5in .5in .5in; mso-header-margin: .5in; mso-footer-margin: .5in; mso-paper-source: 0; } div.Section1 { page: Section1; } 

然后创build一个包含所有内容的div。

 <div class="Section1"> type your content here... </div> 

我也build议pt与厘米或毫米,因为它更精确。 此外,我不能让@page在Chrome(版本30.0.1599.69米)工作,它忽略了我为边缘,无论大小的任何东西。 但是,你可以使它与文档上的边距一起工作,很奇怪。

如果您知道目标纸张大小,则可以将您的内容放在具有该特定大小的DIV中,并为该DIV添加边距以模拟打印边距。 不幸的是,除了显示打印对话框之外,我不相信对打印function有额外的控制。