Печать CSS - Избегайте резки DIV - PullRequest
4 голосов
/ 03 июня 2011

Я разрабатываю приложение, которое генерирует штрих-коды, я хочу их распечатать, но на некоторых страницах div штрих-кода сокращается.

enter image description here

CSS:

<style type="text/css">
    * {
        margin:0px;
    }
    #cod {
        width: 180px;
        height: 150px;
        padding: 10px;
        margin: 10px;
        float: left;
        border: solid black 1px;
        text-align: center;
        display: block;
    }

</style>

Код:

<? foreach ($this->ouvintes as $ouvinte): ?>
    <div id="cod">
        <p><?= $ouvinte->nome ?></p>
        <p><?= $ouvinte->instituicao ?></p>
        <p>Cod. Barras: <?= $ouvinte->codigo_barras ?></p>
        <p style="margin-top:5px;"><img src="<?= $this->baseUrl('/index/codigo-barras/code/' . $ouvinte->codigo_barras) ?>" alt="<?= $ouvinte->codigo_barras ?>" /></p>
    </div>
<? endforeach; ?>

Кто-нибудь знает, как можно избежать этого сокращения?

Спасибо

Ответы [ 4 ]

6 голосов
/ 03 июня 2011

Как насчет использования page-break-after / page-break-before CSS-свойств?

Вы можете настроить его на разрыв после каждых 9 штрих-кодов, например:

<? 
$i = 0;
foreach ($this->ouvintes as $ouvinte):
    $i++;
    $pageBreakStyle = ($i % 9 == 0) ? ' style="page-break-after:always"' : '';
?>
    <div id="cod"<?= $pageBreakStyle ?>>
        <p><?= $ouvinte->nome ?></p>
        <p><?= $ouvinte->instituicao ?></p>
        <p>Cod. Barras: <?= $ouvinte->codigo_barras ?></p>
        <p style="margin-top:5px;"><img src="<?= $this->baseUrl('/index/codigo-barras/code/' . $ouvinte->codigo_barras) ?>" alt="<?= $ouvinte->codigo_barras ?>" /></p>
    </div>
<? endforeach; ?>
0 голосов
/ 14 марта 2016

Попробуйте установить page-break-inside на avoid:

div {
    page-break-inside: avoid;
}
0 голосов
/ 10 января 2012

Я столкнулся с подобной проблемой ... (единственное) рабочее решение - поместить штрих-коды в таблицу ... потому что многостраничный контент действительно работает (без вырезания контента или других проблем) с таблицами.

Попробуйте что-то вроде этого:

<table>
<? foreach ($this->ouvintes as $ouvinte): ?>
    <tr id="cod">
        <td><?= $ouvinte->nome ?></td>
        <td><?= $ouvinte->instituicao ?></td>
        <td>Cod. Barras: <?= $ouvinte->codigo_barras ?></td>
        <td style="margin-top:5px;"><img src="<?= $this->baseUrl('/index/codigo-barras/code/' . $ouvinte->codigo_barras) ?>" alt="<?= $ouvinte->codigo_barras ?>" /></td>
    </tr>
<? endforeach; ?>
</table>
0 голосов
/ 06 июня 2011

Я думаю, что проблема в float: слева .. это большая проблема, но вы можете найти некоторые хитрости здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...