【问题标题】:Bootstrap HTML printing (chrome)引导 HTML 打印(铬)
【发布时间】:2019-09-01 09:23:30
【问题描述】:

我已经探索了一些 SO 问题,但还没有找到完整的答案。我正在使用带有 HTML 5 的引导程序。我正在尝试构建一个可以放在打印纸(8.5x11 或 A4)上的报告页面。但是,我在打印方面遇到了一些问题。

当我使用 ctrl+p 时,引导单元往往会堆叠,并且不会在桌面上保留它们所做的格式。任何其他格式(如字体颜色)都不会显示在打印预览中。边距也不一致。如何使用 bootstrap 构建一个在桌面版和打印版中看起来都一样的报表页面?

这是我正在使用的一个简短示例:

HTML

<div class="container">
  <div class="row">
   <div class="col-sm-6">
     <h2>Person Name</h2>
   </div>
   <div class="col-sm-6">
     <p>Height</p>
   </div>
 </div>
</div>

CSS

@media print{
   @page {
      size: A4;
      margin: 0cm;
    }
    html, body {
      width: 1024px;
    }
    body {
      margin: 0 auto;
    }
    nav {
      display: none;
    }
 }

打印时,“人名”和“身高”不是在相邻的列中,而是彼此堆叠在一起,这与桌面视图不同。

非常感谢任何帮助!

【问题讨论】:

    标签: html css google-chrome bootstrap-4


    【解决方案1】:

    打印机边距可能会干扰列视图。

    CSS:

    @media print{
       @page {
          size: A4;
          margin: 0cm;
        }
        html, body {
          width: 1024px;
        }
        .container {
          width: auto;
        }
        body {
          margin: 0 auto;
        }
        nav {
          display: none;
        }
        .col-6-print{
          flex:0 0 50% !important;
        }
     }
    

    html:

    <div class="container">
      <div class="row">
        <div class="col-sm- col-6-print6">
          <h2>Person Name</h2>
        </div>
        <div class="col-sm-6 col-6-print">
          <p>Height</p>
        </div>
      </div>
    </div>
    

    【讨论】:

    • 是的!我忘了将它添加到问题中的示例中,但它仍然不能解决打印问题。在桌面中,两列 div 是平行的,但在打印预览中它们是堆叠的。
    • 您的打印机可能正在应用边距。这将导致列堆叠。
    • 我查过了,不幸的是情况并非如此。它不会在 Safari 中叠加,但我也更喜欢使用 chrome。
    • 您使用的是移动浏览器还是桌面浏览器?我更新了答案以包含新的 CSS 规则 (.col-6-print)。
    • 桌面浏览器。我对您的新 CSS 规则有直觉,但似乎没有什么不同。不确定为什么它在 safari 中运行良好但在 chrome 中运行良好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 2016-08-27
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2013-05-06
    相关资源
    最近更新 更多