Ir para conteúdo
vicentepc

apresentar número de página

Recommended Posts

Desenvolvi um código em java em um Servlet para gerar uma página dinamicamente, que faz parte de uma API. De imediato, a página apresenta um cabeçalho com um botão Imprimir, um corpo padrão e um rodapé. Quando o usuário clicar no botão Imprimir, o conteúdo da página é visualizado em duas colunas (formatado com css para o navegador Chrome). Assim, o usuário poderá imprimi-la ou gravar o arquivo pdf como um documento em duas colunas.

No entanto, desejo apresentar o número de cada página na parte superior direita. Como essa formatação está sendo realizada com CSS de forma dinâmica pelo Servlet, não estou conseguindo apresentar a numeração contínua em cada página. Como resolver isso? Por favor, se alguém possuir a solução, postar um código de exemplo.Uma parte do código Java está em anexo.

 Grato.

				        html="<html>"+salto;
				        html+="<head>"+salto;
//				        html+="<link rel=\"stylesheet\" type=\"text/css\" href=\" + request.getContextPath() +  \"style.css\" />"+salto; 
				        html+="<link rel=\"stylesheet\" type=\"text/css\" href=\"stylexx.css\" />"+salto; 
				        html+="<script type=\"text/javascript\" src=\"https://gc.kis.v2.scr.kaspersky-labs.com/A889A9A6-7DDA-F641-9080-50A30A6B2DB6/main.js\" charset=\"UTF-8\"></script>"+salto;

				        //>>>>> script para number page
				        /*html+="<script>"+salto;
				        html+="pdfInfo = {};"+salto;
				        html+="var x = document.location.search.substring(1).split('&');"+salto;
				        html+="for (var i in x) { var z = x[i].split('=',2); pdfInfo[z[0]] = unescape(z[1]); }"+salto;
				        html+="function getPdfInfo() {"+salto;
				        html+="  var page = pdfInfo.page || 1;"+salto;
				        html+="  var pageCount = pdfInfo.topage || 1;"+salto;
				        html+="  document.getElementById('pdfkit_page_current').textContent = page;"+salto;
				        html+="  document.getElementById('pdfkit_page_count').textContent = pageCount;"+salto;
				        html+="}"+salto;
				        html+="</script>";
				        */
				        
				        
				        
				        html+="</head>"+salto;

				        html+="<body onload=\"getPdfInfo()\">"+salto;
//>>				        
//				        html+="h1 { page-break-before: always;}"+salto;
//				        html+="<h1>pág</h1>";
//>			            
				        html+="<div class=\"page-header\" style=\"text-align: center\">"+salto;
				       // html+=identificacao;
				        html+="<br/>"+salto;
				        html+="<button type=\"button\" onClick=\"window.print()\" style=\"background: #FFD700\">"+salto;
				        html+="Imprimir";
				        html+="</button>"+salto;
				        html+="</div>"+salto;
				        html+="<div class=\"page-footer\">"+salto;
				        html+="<div class=\"footer\">"+salto;
				            //<input type="nome" name="" id="test" placeholder="Insira sua matéria aqui!">
				            //<button id="anexar">Anexar</button>
				        html+="<div id=\"footer\"></div>"+salto;
				        html+="</div>"+salto;
				        html+="<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\"></script>"+salto;
				        html+="<script>"+salto;
				        html+="    $(document).ready(function(){"+salto;
				        html+="        $(\"#anexar\").click(function(){"+salto;
				        html+="        $(\"#anexar\").hide();"+salto;
				        html+="        var texto = $(\"#test\").val();"+salto;
				        html+="        $(\"#test\").hide();"+salto;
				        html+="        $(\"#footer\").html(texto);"+salto;
		        		html+="        $(\"#footer\").show();"+salto;
		        		html+="        });"+salto;
		        		html+="      });"+salto;
		        		html+="</script>"+salto;
		        		html+="   </div>"+salto;

		        		html+="<table>"+salto;

		        		html+="   <thead>"+salto;
		        		html+="     <tr>"+salto;
		        		html+="       <td>"+salto;
		        		html+=" <!--place holder for the fixed-position header-->"+salto;
		        		html+="          <div class=\"page-header-space\"></div>"+salto;
		        		html+="       </td>"+salto;
		        		html+="    </tr>"+salto;
		        		html+="   </thead>"+salto;
		        	    
                             html+="<tbody>"+salto;
                             html+="<tr>"+salto;
                             html+=" <td>"+salto;
                             html+="   <!--*** CONTENT GOES HERE ***-->"+salto;
                             html+="   <div class=\"page\">"+salto; 
                             html+="      <div class=\"content\">"+salto;

                             //elemento que mostra numero da pagina
                            // html+="<div id=\"pdfkit_page_current\"></div>"+salto;
                             
     				    	   rs = st.executeQuery(sql);
     				    	   String inicioP="";//"<p>";
     				    	   String fimP="";//"</p>"
     				    	   String strBR="</br>";
  				           while (rs.next())
  				           {
  				        	   
  				       		 String texto1=inicioP+"<b>QUESTÃO No.: "+rs.getInt("numeroQuestao")+"</b><p/>"+salto;
 				       		 String texto2=inicioP+rs.getString("enunciado")+inicioP+strBR+salto;
 				       	    
  				       		String alternativa=rs.getString("alternativaA");
  				       		int posicao=alternativa.indexOf("<p");
  				       		int posicaoPosP=-1;
  				       		String alternativaParte1 = alternativa.substring(0,posicao+2);
  				       		String novaAlternativa="";
  				       		if (posicao>=0)
  				       		{  
  				       			for(int k=posicao;k<alternativa.length();k++)
  				       			{
  				       				if (alternativa.charAt(k)=='>')
  				       				{
  				       					posicaoPosP=k;
  				       					break;
  				       				}
  				       			}

  				       		    if (posicaoPosP>0)
  				       		    {
  	  				       			String alternativaP=alternativa.substring(0,posicaoPosP+1);
  				       		    	novaAlternativa=alternativaP+"A)  "+alternativa.substring(posicaoPosP+1);
  				       		        alternativa = novaAlternativa;
  				       		    }
  				       		}  				       		    
  				       		String texto3=alternativa+fimP+strBR+salto;
 
  				       		 alternativa=rs.getString("alternativaB");
   				       		 posicao=alternativa.indexOf("<p");
   				       		 posicaoPosP=-1;
   				       		 alternativaParte1 = alternativa.substring(0,posicao+2);
   				       		 novaAlternativa="";
   				       		if (posicao>=0)
   				       		{  
   				       			for(int k=posicao;k<alternativa.length();k++)
   				       			{
   				       				if (alternativa.charAt(k)=='>')
   				       				{
   				       					posicaoPosP=k;
   				       					break;
   				       				}
   				       			}

   				       		    if (posicaoPosP>0)
   				       		    {
   	  				       			String alternativaP=alternativa.substring(0,posicaoPosP+1);
   				       		    	novaAlternativa=alternativaP+"B)  "+alternativa.substring(posicaoPosP+1);
   				       		        alternativa = novaAlternativa;
   				       		    }
   				       		}  				       		    

  				       		 
  				       		 String texto4=alternativa+fimP+strBR+salto;

  				       		 alternativa=rs.getString("alternativaC");
  				       		 
   				       		 posicao=alternativa.indexOf("<p");
   				       		 posicaoPosP=-1;
   				       		 alternativaParte1 = alternativa.substring(0,posicao+2);
   				       		 novaAlternativa="";
   				       		if (posicao>=0)
   				       		{  
   				       			for(int k=posicao;k<alternativa.length();k++)
   				       			{
   				       				if (alternativa.charAt(k)=='>')
   				       				{
   				       					posicaoPosP=k;
   				       					break;
   				       				}
   				       			}

   				       		    if (posicaoPosP>0)
   				       		    {
   	  				       			String alternativaP=alternativa.substring(0,posicaoPosP+1);
   				       		    	novaAlternativa=alternativaP+"C)  "+alternativa.substring(posicaoPosP+1);
   				       		        alternativa = novaAlternativa;
   				       		    }
   				       		}  				       		    

  				       		 String texto5=alternativa+fimP+strBR+salto;
  				       		// texto5="<p>C)"+texto5+"</p>";
  				       		 
  				       		 
  				       		 alternativa=rs.getString("alternativaD");
   				       		 posicao=alternativa.indexOf("<p");
   				       		 posicaoPosP=-1;
   				       		 alternativaParte1 = alternativa.substring(0,posicao+2);
   				       		 novaAlternativa="";
   				       		if (posicao>=0)
   				       		{  
   				       			for(int k=posicao;k<alternativa.length();k++)
   				       			{
   				       				if (alternativa.charAt(k)=='>')
   				       				{
   				       					posicaoPosP=k;
   				       					break;
   				       				}
   				       			}

   				       		    if (posicaoPosP>0)
   				       		    {
   	  				       			String alternativaP=alternativa.substring(0,posicaoPosP+1);
   				       		    	novaAlternativa=alternativaP+"D)  "+alternativa.substring(posicaoPosP+1);
   				       		        alternativa = novaAlternativa;
   				       		    }
   				       		}  				       		    
  				       		 
    				       		String texto6=alternativa+fimP+strBR+salto;
  				       		 String textor=""+salto;
  				       		  textor= texto1+ texto2+ texto3+ texto4+ texto5+ texto6;
  				       		 html+=textor;
  				           } 
  	                  }
  			        
  				    finally
  				    { 
  			           // out.close();
  			        }
                      html+="     </div>"+salto;// fecha page
                      html+="   </div>"+salto;// fecha page
                      html+="  </td>"+salto;
                      html+=" </tr>"+salto;
                      html+=" </tbody>"+salto;

                      
                      html+="<tfoot>"+salto;
                      html+="   <tr>"+salto;
                      html+="      <td>"+salto;
                      html+="         <!--place holder for the fixed-position footer-->"+salto;
                      html+="         <div class=\"page-footer-space\"></div>"+salto;
                      html+="      </td>"+salto;
                      html+="    </tr>"+salto;
                      html+="</tfoot>"+salto;

                      html+="</table>"+salto;

				      /*  html+="<div class=\"footer\">"+salto;
			            html+="    <div id=\"btnBox\"></div>"+salto;
			            html+="       <input type=\"nome\" name=\"\" id=\"test\" placeholder=\"\">"+salto;
			            html+="       <button id=\"anexar\">Anexar</button>"+salto;      
		                html+="    </div>"+salto;
		                html+="    <div id=\"footer\"></div>"+salto;
		                html+="</div>"+salto;
                    */
                          contaPaginas++;
			               html+="<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script>"+salto;
			               html+="<script>"+salto;
			               //footer+="    $(document).ready(function(){"+salto;
			               //footer+="    $('#anexar').click(function(){"+salto;
			               html+="    $(\"#anexar\").hide();"+salto;
			               html+="     var texto ='"+rodape+"';"+salto;   // $('#test').val();
//			               String auxiliar = rodape +" - pág:"+contaPaginas;
//			               html+="     var texto ='"+auxiliar+"';"+salto;   // $('#test').val();
			               //     $("#test").hide();
			               html+="      $('#footer').html(texto);"+salto;
			               html+="      $('#footer').show();"+salto;
			                   // });
			              // });
                      html+="</script>"+salto;
                      html+="</div>"+salto;
                      html+="</body>"+salto;
                      html+="</html>"+salto;
           out.println(html);        
           /*
            * 
            * <script>
          $(document).ready(function(){
              $("#anexar").click(function(){
                  $("#anexar").hide();
                  var texto = $("#test").val();
                  $("#test").hide();
                  $("#footer").html(texto);
                  $("#footer").show();
              });
          });


      </script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Negrito
      Olá Pessoal, 
       
      Converti o banco de dados de uma app em ASP Classico de MSSQL para MySQL para redução de custos e percebi que alguns componentes ou recursos não estão mais funcionando devido a não compatibilidade com o MySQL , como por exemplo a função : RecordCount
       
      Já consegui converter e atualizar 95% de aplicação para rodar com o MySQL, mas tem 1 item que esta tirando meu sono e após dias pesquisando, resolvi pedir ajuda.
       
      Segue o meu codigo abaixo , onde estou com problema no resultado dessa operação:
       
      <%
      ...
      Set RS = Server.CreateObject("ADODB.Recordset")
      RS.CursorLocation = 3
      RS.CursorType = 3
      RS.ActiveConnection = Cn
      RS.Open strSQL, Cn, 3, 3
      RS.PageSize = 25
      RS.CacheSize = RS.PageSize
      intPageCount = RS.PageCount
      intRecordCount = RS.RecordCount
          If NOT (RS.BOF AND RS.EOF) Then
      If CInt(intPage) > CInt(intPageCount) Then intPage = intPageCount
          If CInt(intPage) <= 0 Then intPage = 1
              If intRecordCount > 0 Then
                  RS.AbsolutePage = intPage
                  intStart = RS.AbsolutePosition
                  If CInt(intPage) = CInt(intPageCount) Then
                      intFinish = intRecordCount
                  Else
                      intFinish = intStart + (RS.PageSize - 1)
                  End if
              End If
          If intRecordCount > 0 Then
              For intRecord = 1 to RS.PageSize
          QntExibicoes = QntExibicoes + Rs.fields("views")
      ...
      %>
       
       
      Já percebi que a função RecordCount não pode ser usada com o MySQL ou pelo menos não é compativel.
       
      A paginação esta funcionando ! 
      Porem , não consigo fazer ele calcular a quantidade de linhas (rows) do MySQL com a função RecordCount e acredito que possa ter alguma outra função que não esta compativel , mas como não conheço MySQL , não posso afirmar.
       
      Enfim, algum pode me dar uma luz ?
       
      Desde já agradeço pela atenção.
       
      Obrigado.
    • Por RodrigoWD3
      Pessoal boa tarde, estou criando uma galeria com categorias no php e mysql, gostaria de saber como faço para colocar um botão -  Exibir Mais Fotos - fazendo exibir o restante dos registros na mesma pagina, teria alguma forma de limitar as fotos sem usar o LIMIT do sql? pode ser usando jQuery algo assim , obrigado
    • Por Inside
      Olá amigos,
       
      Eu estou precisando de uma paginação ASP que exiba tipo de 1 até 3 páginas e depois Próxima Página ou de 1 até 6 depois Próxima Página. De 3 em 3 ou ou de 6 em 6.
       
      Alguém já viu algum exemplo desse tipo?
       
      Paginação, 1 2 3 próxima
       
      Eu procurei na web não achei nada do tipo em ASP. Aqui no fórum também não achei.
       
      Obrigado pela atenção.
    • Por mkboy
      Olá,
       
      Uso MySQL no dia a Dia, mas tenho essa consulta em uma aplicação em uma base SQL Server onde conecto via PHP.
       
      Tenho 5000 registros na tabela, preciso trazer de 500 em 500.
      Assim, atualizo todos que preciso.

      No MySQL eu faria ASSIM
       
      SELECT campos FROM tabela CONDICAO Limit 0,500 SELECT campos FROM tabela CONDICAO Limit 500,500 SELECT campos FROM tabela CONDICAO Limit 1000,500  
      Então, eu passaria por todos os registros até chegar no 5000.
       
      Estou fazendo o select abaixo no SQL, mas fica um intervalo de produtos que não vem a cada select.
       
      Veja como fiz: (Um amigo ajudou na época que foi feito, não entendo bem)
       
      $sql = "SELECT TOP 500 data.CodigoInterno, data.CodigoFabricante, data.Fabricante, data.PrecoVenda, data.SaldoEstoque, data.Titulo, data.Aplicacao FROM ( SELECT ROW_NUMBER() OVER(ORDER BY CodigoInterno ASC) AS Row, CodigoInterno, CodigoFabricante, Fabricante, PrecoVenda, SaldoEstoque, Titulo, Aplicacao FROM PRODUTOS ) AS data WHERE data.Row >= ".addslashes($_GET['qtdRegistro'])." ORDER BY data.CodigoInterno ASC";  
      Então na Query envio o 0...500....
       
      Podem me ajudar por favor?
       
       
       
    • Por Alberto Nascimento
      Como faço para que esta consulta exiba 5 registros por página?
       
      <?php if(isset($_SESSION['msg'])){ echo $_SESSION['msg']; unset($_SESSION['msg']); } $result_msg_cont = "SELECT * FROM internautas ORDER BY id ASC"; $resultado_msg_cont = $conn->prepare($result_msg_cont); $resultado_msg_cont->execute(); while ($row_msg_cont = $resultado_msg_cont->fetch(PDO::FETCH_ASSOC)) {  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.