【问题标题】:Can I force an HTML document to be one page long?我可以强制 HTML 文档为一页吗?
【发布时间】:2010-10-02 16:45:38
【问题描述】:

我正在从 HTML 生成一个文档。有没有办法强制 HTML 页面呈现为一个打印页面长?

我已经用<table><div> 标签完成了大部分页面。

【问题讨论】:

    标签: html printing document


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      没有。您无法控制用户的缩放级别、打印机设置、纸张尺寸(他是在欧洲使用 A4 纸还是在美国合法?)以及所有其他影响使用 HTML 的打印机输出的各种因素。

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

      【讨论】:

      • 如果您想完全控制打印输出,PDF 是您的最佳选择。
      • “您无法控制用户的 [...] 纸张大小 [...]” — 对打印机进行成像会裁剪您的纸张以适合作者设置。 :)
      【解决方案3】:

      当然。您有两种可能性:

      • 将您的页面转换为大图。
      • 将您的页面转换为 PDF。
      • 页面尺寸固定,左右滚动,因为页面太宽,难以传输信息,因此惹恼了所有用户。

      【讨论】:

      • “图像”方法有其缺点 - 想到 DPI 分辨率。 PDF 似乎是最简单的方法。
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        使用 PDF。您可以强制执行许多操作,例如字体大小、字体类型和许多其他参数,但任何浏览器都可以决定他们不在乎并使用他们想要的任何东西,因此违反了您的先决条件或决定。 HTML 不是(在我之后重复:不是)一种表示语言。

        在许多情况下,它大部分都会起作用,但没有什么是确定的。

        【讨论】:

          【解决方案6】:

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

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

          将字体大小、填充等设置为物理单位,如“pt”(绝不应在屏幕样式表中使用!),以便在以典型的方式呈现时或多或少地成为 A4 页面浏览器,典型字体,跟风。没有任何保证,但您可以针对常见情况进行优化。

          在打印中您不必太担心字体大小偏好或 dpi 设置,但您仍然无法控制浏览器使用的边距或实际页面大小(US Letter 小于 A4),所以离开大量的回旋余地并在主要浏览器上进行测试。

          【讨论】:

          • "没有任何保证,但您可以针对常见情况进行优化。"说得好。如果您知道要在页面中塞入多少实际内容,则可以很好地确保它适合大多数人的页面。
          • 我还建议针对 US Letter 尺寸进行优化,因为它比 A4 略小。 A4 会让 US Letter 用户发疯,但 US Letter 会适合 A4,用户可能不会注意到。
          【解决方案7】:

          不,但您可以通过使用打印媒体的专用 CSS 文件来使打印视图更加流畅,就像上面建议的那样。

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

          最后你也可以使用 "display:none;" 用于广告、导航栏等不必要的元素,以保持页面本身更短(希望足够短以容纳单个页面)。

          但不能保证。

          【讨论】:

            猜你喜欢
            • 2010-12-12
            • 2020-06-07
            • 2017-09-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多