2009-01-21 57 views

回答

9

不完全是,但你可以使用的打印样式表:

<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 

要设置字体大小,填充等,以物理单位,比如“PT”(即不应该在屏幕样式表的使用!),以至于当它在一个典型的浏览器中呈现时,或多或少是一个A4页面,通常具有随后的风格。没有什么是保证的,但你可以针对常见情况进行优化。

在打印中,您不必太担心字体大小首选项或dpi设置,但仍然无法控制浏览器使用的页边距或实际页面大小(US Letter小于A4),所以在主要浏览器上留下大量的摆动空间并进行测试。

2

您可以使用CSS样式的页面,并将其设置到一定的高度/宽度...有一个很好的教程here

7

号你无法控制用户的缩放级别,打印机设置,纸张大小(是他利用在欧洲或A4纸在美国?法律)和所有的使用HTML影响打印机输出的各种其他的事情。

你可以用HTML做的最好的事情是制作一个非常简单的“打印友好”页面,并保持内容简短。或者,您可以创建一个PDF,旨在让您控制它的打印方式。

+0

如果您想要对打印输出进行全面控制,PDF就是要走的路。 – 2009-01-21 14:05:05

+0

“您无法控制用户的纸张尺寸[...]” - 对打印机进行成像会裁剪纸张以适应作者设置。 :) – Gumbo 2009-01-21 14:08:42

1

当然。您有几种可能性:

  • 将您的页面转换为大图像。
  • 将您的页面转换为PDF。
  • 让您的所有用户都有一个固定尺寸的页面左右滚动,因为它太宽,并且极难传输信息。
+0

“图像”方法有其缺点 - DPI分辨率浮现在脑海。 PDF似乎是最简单的方法。 – Piskvor 2009-01-21 14:05:57

0

不,没有办法,因为在呈现HTML时您无法知道打印机类型或纸张大小。

我唯一的建议是将打印机属性设置为在打印时缩放内容以适合一页。

2

使用PDF。你可以强制许多东西,如字体大小,字体类型和许多其他参数,但任何浏览器可以决定他们不关心和使用他们想要的任何东西,因此违反了你的先决条件或决定。 HTML不是(在我之后重复:不是)演示语言。

在很多情况下,它将主要工作,但没有什么是确定的。

2

不,但是您可以使用打印介质的专用CSS文件使打印视图更平滑,就像上面提到的那样。

然后,您可以例如至少通过使用 "page-break-before: always;"防止表跨越2页。

最后,你也可以使用上是不必要像广告,导航条等,以保持页面本身较短(足够短的单页,希望)元素 "display:none;"

虽然没有保证。

相关问题