【发布时间】:2010-10-02 16:45:38
【问题描述】:
我正在从 HTML 生成一个文档。有没有办法强制 HTML 页面呈现为一个打印页面长?
我已经用<table> 和<div> 标签完成了大部分页面。
【问题讨论】:
我正在从 HTML 生成一个文档。有没有办法强制 HTML 页面呈现为一个打印页面长?
我已经用<table> 和<div> 标签完成了大部分页面。
【问题讨论】:
您可以使用 CSS 设置页面样式并将其设置为一定的高度/宽度...有一个很好的教程here。
【讨论】:
没有。您无法控制用户的缩放级别、打印机设置、纸张尺寸(他是在欧洲使用 A4 纸还是在美国合法?)以及所有其他影响使用 HTML 的打印机输出的各种因素。
使用 HTML 可以做的最好的事情是制作一个非常简单的“打印机友好”页面并保持内容简短。或者,您可以构建一个 PDF,该 PDF 旨在让您控制其打印方式。
【讨论】:
当然。您有两种可能性:
【讨论】:
没有办法,因为在呈现 HTML 时您不可能知道打印机类型或纸张大小。
我唯一的建议是设置打印机属性以在打印时缩放内容以适应一页。
【讨论】:
使用 PDF。您可以强制执行许多操作,例如字体大小、字体类型和许多其他参数,但任何浏览器都可以决定他们不在乎并使用他们想要的任何东西,因此违反了您的先决条件或决定。 HTML 不是(在我之后重复:不是)一种表示语言。
在许多情况下,它大部分都会起作用,但没有什么是确定的。
【讨论】:
不完全是,但您可以使用打印样式表:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
将字体大小、填充等设置为物理单位,如“pt”(绝不应在屏幕样式表中使用!),以便在以典型的方式呈现时或多或少地成为 A4 页面浏览器,典型字体,跟风。没有任何保证,但您可以针对常见情况进行优化。
在打印中您不必太担心字体大小偏好或 dpi 设置,但您仍然无法控制浏览器使用的边距或实际页面大小(US Letter 小于 A4),所以离开大量的回旋余地并在主要浏览器上进行测试。
【讨论】:
不,但您可以通过使用打印媒体的专用 CSS 文件来使打印视图更加流畅,就像上面建议的那样。
然后,您至少可以通过使用来防止表格跨越 2 页 "page-break-before: always;".
最后你也可以使用 "display:none;" 用于广告、导航栏等不必要的元素,以保持页面本身更短(希望足够短以容纳单个页面)。
但不能保证。
【讨论】: