HTML中的分页符

HTML中的分页符,html,css,Html,Css,所以。。。HTML仍然让我很难受。我有一些代码,可以为每个成员打印订单报告,在我们将订单分发给交付订单的人员时,必须打印这些报告。问题是,包含分页符的div有一大堆奇怪的大小,所以当我试图打印报告时,格式非常奇怪。这有时会导致打印空白页,或者在两个不同页面的底部和顶部之间有一个顺序分割 我想弄清楚如何让每个订单都打印在自己的页面上,就在页面的顶部,但最后一个div没有按我希望的方式工作。我已经断断续续地试图修复这个问题好几个星期了;有人能帮我吗 以下是该页面的代码: <style>

所以。。。HTML仍然让我很难受。我有一些代码,可以为每个成员打印订单报告,在我们将订单分发给交付订单的人员时,必须打印这些报告。问题是,包含分页符的div有一大堆奇怪的大小,所以当我试图打印报告时,格式非常奇怪。这有时会导致打印空白页,或者在两个不同页面的底部和顶部之间有一个顺序分割

我想弄清楚如何让每个订单都打印在自己的页面上,就在页面的顶部,但最后一个div没有按我希望的方式工作。我已经断断续续地试图修复这个问题好几个星期了;有人能帮我吗

以下是该页面的代码:

<style>
.first-time{
    text-align: right;
    color:#fff;
    background: #a00;
}
.page-break {
    display: block;
    page-break-before: always;
}
.title th{
    background: #6c6c6c;
    color:#fff
}
</style>
<script>
</script>
<div class="reports">
<table cellpadding="0" cellspacing="0">
    <?php $count_orders = 0 ?>
    <?php $count_products = 0 ?>
    <?php foreach ($sites as $site): ?>
        <tr>
            <th class="big" colspan="7"><?php echo $site ?></th>
        </tr>
        <?php foreach ($orders as $page_number => $order): ?>
            <?php if ($order['Site']['name'] == $site): ?>
                <tr class="title">
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Address</th>
                    <th>City</th>
                    <th>Email</th>
                    <th>Phone</th>
                    <th>Site</th>
                </tr>
                <tr>
                    <td><strong><?php echo $order['Account']['first_name'] ?></strong></td>
                    <td><strong><?php echo $order['Account']['last_name'] ?>&nbsp;<span style="color:red"><?php echo ($order['Account']['homebound'] == 1)?'(homebound)':'';?></span></strong></td>
                    <td><?php echo $order['Account']['street1'].$order['Account']['street2'] ?></td>
                    <td><?php echo $order['Account']['city']?></td>
                    <td><?php echo $order['Account']['email'] ?></td>
                    <td><?php echo $order['Account']['phone'] ?></td>
                    <td><?php echo $order['Site']['name'] ?></td>
                </tr>
                <tr>
                    <th colspan="6">Product</th>
                    <th>Quantity</th>
                </tr>
                <?php foreach ($order['ProductType'] as $productType): ?>
                    <tr>
                        <td colspan="6"><?php echo $productType['type'] ?></td>
                        <td><?php echo $productType['OrdersProductType']['quantity']*$productType['units'] ?></td>
                    </tr>
                    <?php $count_products++ ?>
                <?php endforeach ?>
                <?php foreach ($order['Coupon'] as $coupon): ?>
                    <tr>
                        <td colspan="6">Coupon</td>
                        <td>-<?php echo $coupon['discount'] ?></td>
                    </tr>
                <?php endforeach ?>
                <?php $count_orders++ ?>
                <input class='account-id' href='/Reports/firstTime' data-sale="<?php echo $order['Order']['sale_id'] ?>" type='hidden' name='data[Account][id]' value="<?= $order['Account']['id'] ?>" />
                <tr></tr>
                <tr><td style='border:none; padding:0;'><div class='page-break'></div></td></tr>
             <?php endif ?>
        <?php endforeach ?>
    <?php endforeach ?>
</table>

.第一次{
文本对齐:右对齐;
颜色:#fff;
背景:#a00;
}
.分页符{
显示:块;
前分页符:始终;
}
.标题th{
背景:#6c6c;
颜色:#fff
}
名字
姓
地址
城市
电子邮件
电话
场地


产品
量
息票
-


其中大部分内容可能可以忽略,但我只是以防万一,因为我的HTML编码经验充其量也很有限。我主要是一名后端程序员,但使用此报告的人不理解其中的区别,也不明白为什么我不能通过添加一个分页符来修复它,如Word…

我想您应该使用

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

因此,它会在每个订单之后(而不是在该div之前)断开页面。尽管尝试一下并让我知道,我可能是错的

我将继续并结束这个问题。在与我的另一位程序员交谈之后,我们还没有找到问题的根本原因,但我们通过将表分为两个表来解决问题,其中一个表仅用于分页符

我们知道,这是一种糟糕的编码风格。但是,它解决了这个问题,这让我们相信有东西从表中抓取了填充,并在分页符后添加了填充。我找不到它是什么,但我把它拆了


所以。。。糟糕的编码,但它得到了修复。对于我们这个小公司来说,这已经足够了。谢谢您的帮助。

一页的订单是否可能太大?如果没有,我建议使用@media print css功能来获取您想要的内容。这种情况并不经常发生,但对于一页来说,订单可能太大。在这种情况下,我们只是把它打印在两页上,然后钉在一起。这实际上是我尝试的第一件事。如果我在div中放置了一些内容,这将影响它是在页面的顶部还是在订单的底部,但是分页符问题仍然存在。我还尝试设置div的高度,但也不起作用。