Итак ... HTML все еще смущает меня. У меня есть код, который печатает отчет о заказе для каждого участника, который должен быть напечатан, когда мы передаем их людям, которые заказывают заказы. Проблема в том, что div, содержащий разрыв страницы, представляет собой целую кучу нечетных размеров, поэтому, когда я пытаюсь распечатать отчет, форматирование очень странно. Иногда это приводит к тому, что печатаются пустые страницы или имеет порядок, разделенный между нижней и верхней частью двух разных страниц.Разрывы страниц в HTML
Я хотел бы выяснить, как получить каждый заказ для печати на собственной странице, в верхней части страницы, но последний 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'] ?> <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 ...
Есть ли вероятность, что заказы могут быть слишком большими для одной страницы? Если нет, я бы предложил использовать функциональность @media print css, чтобы получить то, что вы хотите. – jonosma
http://stackoverflow.com/questions/16649943/css-to-set-a4-paper-size http://stackoverflow.com/questions/797432/css-formatting-a4-print https: //developer.mozilla .org/en-US/docs/Web/CSS/@ media – jonosma
Это случается не часто, но порядок может быть слишком большим для одной страницы. Когда это так, мы просто распечатали его на двух страницах и сшили его вместе. –