HTML中的分页符

时间:2013-10-24 18:56:15

标签: html css

所以...... 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>

大部分内容都可能被忽略,但我将其包含在内以防万一,因为我的HTML编码经验最少。我主要是一个后端程序员,但是使用这个报告的人不理解这个区别,并且不明白为什么我不能通过像Word中那样添加分页符来解决它...

2 个答案:

答案 0 :(得分:2)

我想你想用

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

所以它在每个订单之后不在该div之前打破了页面。我试错了,但是让我知道

答案 1 :(得分:0)

我要继续关闭这个问题。在与我的其他程序员交谈之后,我们还没有找到问题的根本原因,但是我们通过将表分成两个表来解决这个问题,其中一个表只是用于分页。

我们知道这是可怕的编码风格。但是,它解决了这个问题,这使我们相信某些内容正在从表中获取填充并在分页后添加它。我无法找到它是什么,但拆分固定它。

所以...编码不好,但它修复了。对于我们的小公司来说,这已经足够了。谢谢你的帮助。