Fórum css para impressao media print #551818

19/04/2016

0

PHP

bom dia.

Eu tenho uma pagina que mostra na tela um boletim de varias pessoas.
Utilizei o css media print com o estilo page-break-before: always ;. e para cada pessoa, o mesmo esta sendo impresso em uma única pagina corretamente.
O meu problema é que, a primeira pagina sempre é em branco. Como faço para remover esta pagina em branco?
Desde já agradeço.
Gisely Santos

Gisely Santos

Responder

Post mais votado

19/04/2016

Se quiser compartilhar o código HTML e css, posso testar ;)

Bruno Azevedo

Bruno Azevedo
Responder

Gostei + 1

Mais Posts

19/04/2016

Bruno Azevedo

Boa tarde Gisely,

Você pode criar uma div só para fazer a quebra de linhas exemplo: <div style="page-break-after: avoid;"></div>
Dessa forma, terá mais controle sobre a divisão das páginas.

Espero ter ajudado. ;)
Responder

Gostei + 0

19/04/2016

Gisely Santos

Ola.
Tentei desta forma, porem as primeiras paginas são formatadas corretamente, porem o restantes das paginas vai se desconfigurando aos poucos onde o titulo da segunda aparece na primeira entre outras coisas...
mais alguma sugestão?
Responder

Gostei + 0

19/04/2016

Gisely Santos

bem, posso compartilhar parte, pois o código em si é muito extenso...rsrs
segue abaixo o css:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<style type="text/css" rel="stylesheet">
    @media print
    {
        .botaotopo{
            display:none;
        }
        .botao_print{
            display:none;
        }
    }
</style>
<style type="text/css">
.nav, footer, video, audio, object, embed {
    display:none;
    }
.texto_tebela_lateral {
    font-size: 12px;
    text-align: left;
}
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
body,td,th {
    font-family: Arial, Helvetica, sans-serif;
    text-align: left;
}
.botaotopo {
    display:scroll;
    position:fixed;
    top:1%;
    right:1%;
}
.botao_print{
    display:scroll;
    position:fixed;
    top:8%;
    right:1%;
    cursor: pointer;
}
table.boletim_indicador {
    font-size: 12px;
    font-weight: bold;
    text-align: center;
    alignment-adjust:auto;
    vertical-align: middle;
    border-collapse: collapse;
    margin: 5px auto;
}
table.boletim_indicador .subtitulo {
    text-align: left;
}
table.boletim_indicador .titulo {
    text-align: center;
    background-color: #EEEEEE;
    color: #666666;
}
table.boletim_indicador td {
    text-align: center;
    border: solid 1px gray;
}
.current {
    font-size: 20px;
    text-align: justify;
    font-size: 16px;
}
.current1 {font-size: 20px;
    text-align: justify;
    font-size: 18px;
}
.boletim {
    text-align: center;
}
.current10 {    font-size: 20px;
    text-align: justify;
    font-size: 16px;
}
</style>

essa seria, a parte do documento a ser impresso. Como na pagina anterior ou sera enviado apenas o nome de uma pessoa ou o nome de varias pessoas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<?
// na pagina anterior preciso filtrr um curso para exibir a lista dos alunos. posso mandar um aluno ou varios para exibir este boletim.
if($curso){
    $array = array();
    foreach ( $alunos as $matricula => $vetor_final ) {
        if ( array_key_exists( $vetor_final['matricula_aluno'], $resultado ) ) {
    // esse array é apenas para montar o vetor de resultados no seu boletim.
?>
<table width="800" height="1180" align="center" cellpadding="2">
  <tr>
    <th valign="top" >
    <table width="800" border="0" align="center">
      <tr>
        <th height="49" ><table width="780" border="0">
          <tr>
            <th width="212" height="47" align="left" ><img src="../images/logo.png" alt="" width="175" height="36"></th>
            <td width="558"><p align="right">Cidade e data.</p></td>
          </tr>
        </table></th>
      </tr>
      <tr>
        <th  ><table width="800" cellpadding="2">
          <tr>
            <th align="center" scope="row"><h1 class="boletim">BOLETIM</h1></th>
          </tr>
        </table>
          <table width="800" cellpadding="2">
            <tr>
              <th width="148" align="left" scope="row"><strong class="current10 ">NOME:</strong></th>
              <td width="320">JOAOZINHO</td>
              <td width="114"><strong class="current10 ">MATRÍCULA:</strong></td>
              <td width="190">123467890123</td>
            </tr>
          </table>
          <table width="800" cellpadding="2">
            <tr>
              <th width="150" scope="row"><strong class="current10  ">SALA</strong></th>
              <td width="231">902</td>
              <td width="126"><strong>CURSO:</strong></td>
              <td width="257">TADS</td>
            </tr>
          </table>
          <table width="800" cellpadding="2">
            <tr>
              <th width="193" align="left" scope="row"><strong class="current10 ">DATA INICIO:</strong></th>
              <td width="151">2016-01-01</td>
              <td width="197"><span class="current10 "><strong>SEMESTRE</strong>:</span></td>
              <td width="231">3</td>
            </tr>
          </table></th>
      </tr>
      <tr>
        <td align="left" ><p class="current10 "> </p>
        aqui eu tenho um texto explicativo sobre o resultado atual da pessoa
        </td>
      </tr>
      <tr>
        <th ><img src="../imagem/recorte.png" alt="" width="800" height="5"></th>
      </tr>
      <tr>
        <td height="250" >
<?
if ( $codicao1 == true ){
?>
        <table width="100%" class="boletim_indicador">
          <tr>
            <td class="titulo">titulo 01</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
          <tr>
            <td class="subtitulo">titulo 02</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
          <tr>
            <td class="subtitulo">titulo 03</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
        <tr>
            <td class="subtitulo">titulo 04</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
        </table>
<? }
         
        if ( $codicao2 == true ){
?>
        <table width="100%" class="boletim_indicador">
          <tr>
            <td class="titulo">titulo 01</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
          <tr>
            <td class="subtitulo">titulo 02</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
          <tr>
            <td class="subtitulo">titulo 03</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
        <tr>
            <td class="subtitulo">titulo 04</td>
            <td>campo 01</td>
            <td>campo 02</td>
            <td>campo 03</td>
            <td>campo 04</td>
            <td>campo 05</td>
            <td>campo 06</td>
            <td>campo 07</td>
        </tr>
        </table>
<? } ?>
        </td>
      </tr>
    </table></th>
  </tr>
</table>
<?
        }
    }
}
?>
 
<!-- exibe botao flutuante para retornar a pagina anterior  -->
<a class="botaotopo" href="pagina1.php" title="Voltar">
    <img  width="40px" height="40px" src="../image/voltar_.png" border="0" />
</a>
<!-- exibe botao flutuante para imprimiar a pagina   -->
<a class="botao_print" onClick="window.print();" >
    <img  width="40px" height="40px" src="../image/print.gif" border="0" />
</a>

nao sei exatamente ao devo colocar a tal div para dar a quebra na pagina. se dentro do laço de repetição ou fora...
tentei por dentro do foreach, a primeira pagina configurou corretamente, a segunda veio em branco e as demais formatadas corretamente.
tentei de varias formas... nao obtive resultado.
Como disse, na ultima sugestão, se fossem preparadas 18 paginas para a impressao, até a 10 configurou corretamente, depois começou a subir o titulo com o logo para a pagina anterior e ja bagunçou tudo...

Agradeço a atenção mais uma vez :)
Responder

Gostei + 0

24/10/2016

Gisely Santos

Resolvido. o problema eram as disposições das tags 'TABLE' as as linhas e celulas.
vlw
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar