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