【问题标题】:Page break using css based on the Page height使用基于页面高度的 css 分页符
【发布时间】:2014-04-14 21:20:02
【问题描述】:

我有一个要打印的动态列表,当我到达 A4 尺寸的末尾而不是像示例那样的表格末尾时,我需要设置分页。

是否可以根据页面高度设置分页符?

其实我有:

@page 
{
   size: A4;
   margin: 0;
   page-break-before: always; 
}

@media print 
{
 .page 
  {
    margin: 0;
    border: initial;
    border-radius: initial;
    width: initial;
    min-height: initial;
    box-shadow: initial;
    background: initial;
    page-break-after: always;
    position: relative;
}

 .page-break    
 { 
    display: block; 
    page-break-before: always;
 }
}

动态视图由两个具有动态行的表组成,所以我永远不知道在哪里“剪切”页面:

<div class="page">

    @foreach(var dme in Model)
    {
        <table class="dme-table">
             <tr>
                 <th class="titulo" colspan="4">DME</th>
              </tr>
              <tr>
               <th class="dme-table-num-th">Número</th>
                    <th>Data</th>
                </tr>
                <tr>
                    <td>@Html.DisplayFor(model => dme.Numero)</td>
                </tr>
            </table>

            <table class="carga-table">
                <tr>
                    <th>Cargas</th>
                </tr>
                <tr>
                    <th class="marcas">Marcas</th>
                </tr>

                @foreach(var carga in dme.Cargas)
                {
                    <tr>
                        <td>@Html.DisplayFor(model => carga.Marcas)</td>
                    </tr>
                 }
            </table>

        </div>

        <div class="page-break"></div>
    }
</div>

有什么想法吗?

谢谢

【问题讨论】:

  • 您可以尝试在@foreach(var carga in dme.Cargas) 中检查(if-,else-statement)页面的高度...如果高度达到您想要的目标,请设置您的分页符还有其他显示你的carga.Marcas
  • 您好,谢谢,但是服务器端没有做foreach测试?
  • 您似乎在 .page-break 之前多了一个
    。修复它,它可能会起作用

标签: html css asp.net-mvc razor


【解决方案1】:

我不会打扰 - 不同的用户会有不同的字体堆栈、纸张大小(认为合法是各州的标准)。现代浏览器可能会做得更好,所以让他们来吧。

Chris Coyer 有一个good screencast,如果您还没有看过它,关于打印样式表的基本使用(您可以跳过第一个 09:30,因为它主要是华夫饼)。

【讨论】:

  • 嗨,谢谢。这是一个问题,因为当我到达论文末尾时,我无法“打破”页面,在问题示例中,我每页打印一个表格,留下一个很大的空白。
  • 浏览器应该为你做这件事。您无法知道客户的设置:他们有或没有的字体、打印机上的边距设置、可访问性设置(可能因为视力受损而强制使用大字体)。您可以像上面所做的那样在部分的逻辑末尾建议分页符,但您不知道物理页面在哪里结束。它与响应式设计的概念类似——您无法控制用户是否在手机、平板电脑或 huuuuuuge 桌面显示器上查看您的网站。
  • 在这种情况下,我知道要打印的位置,我需要最大化打印区域并尽量减少使用的纸张。
猜你喜欢
  • 2021-09-09
  • 1970-01-01
  • 2014-01-31
  • 2015-02-09
  • 2013-10-17
  • 1970-01-01
  • 2012-10-26
  • 2013-07-28
  • 2013-08-21
相关资源
最近更新 更多