Jump to content
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>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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?
       
       
       
    • By 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)) {  
    • By unset
      Olá, alguém poderia me ajudar a implementar uma paginação de resultados? tenho o modelo mvc abaixo
       
      Controller
      <?php // Load All Posts public function index(){ $posts = $this->postModel->getPosts(); $data = [ 'posts' => $posts ]; $this->view('posts/index', $data); } ?> Model
      <?php // Get All Posts public function getPosts(){ $this->db->query("SELECT *, posts.id as postId, users.id as userId FROM posts INNER JOIN users ON posts.user_id = users.id ORDER BY posts.created_at DESC;"); $results = $this->db->resultset(); return $results; } View
      <?php foreach($data['posts'] as $post) : ?> <div class="card card-body mb-3"> <h4 class="card-title"><?php echo $post->title; ?></h4> <div class="bg-light p-2 mb-3"> Written by <?php echo $post->name; ?> on <?php echo $post->created_at; ?> </div> <p class="card-text"><?php echo $post->body; ?></p> <a class="btn btn-dark" href="<?php echo URLROOT; ?>/posts/show/<?php echo $post->postId; ?>">More</a> </div> <?php endforeach; ?> Como fazer a paginação ?
    • By infonet
      Poderiam me ajudar com esta consulta SQL?   Acontece que ela roda normal, mas quando coloco na paginação ela não funciona:   mysqli_query ($conn, "SET @a := 0"); $_pagi_sql = "SELECT *, LPAD( @a := @a + 1, 5, '0' ) 'sequencial' FROM tb_his WHERE idclih = $idclientHis ORDER BY dt_his DESC, idhis DESC, sequencial DESC";   O erro acontece somente por causa do final: sequencial DESC, pois quando eu retiro, funciona normalmente.   Obrigado!
    • By ygorme
      Por favor, alguém me ajuda? Limitei para 12 imagens por página. Fiz o upload de 24 fotos.. mas só aparece a primeira página (numéro 1). Ou seja, era para ter aparecido as próximas páginas (2 e 3) No site, a paginação não é clicável.É algum erro bobo que estou deixando passar :(
       
      <?php session_start(); require_once '_header.php'; require_once '_database.php'; if (!empty($_GET['act']) && $_GET['act'] == 'logout') { unset($_SESSION["id"]); header('location:index.php'); exit(); } $arr_cat[] = array(); $records = $conn->prepare('SELECT * FROM categoria order by nome'); if ($records->execute()) { $arr_cat = $records->fetchAll(PDO::FETCH_ASSOC); } $_POST['paginaAtual'] = !empty($_POST['paginaAtual']) ? trim($_POST['paginaAtual']) : 1; $_POST['qtdeItensPagina'] = !empty($_POST['qtdeItensPagina']) ? $_POST['qtdeItensPagina'] : 12; // always initialize a variable before use! $conditions = array(); $parameters = array(); // conditional statements if (!empty($_POST['legenda'])) { // here we are using LIKE with wildcard search // use it ONLY if really need it $conditions[] = 'legenda LIKE ?'; $parameters[] = '%'.$_POST['legenda']."%"; }else $_POST['legenda'] = ''; if (!empty($_POST['id_categoria'])) { // here we are using equality $conditions[] = 'id_categoria = ?'; $parameters[] = $_POST['id_categoria']; }else $_POST['id_categoria'] = 0; // the main query $sql = "SELECT * FROM post"; // a smart code to add all conditions, if any if ($conditions) { $sql .= " WHERE ".implode(" AND ", $conditions); } $parameters[] = ($_POST['paginaAtual'] - 1) * $_POST['qtdeItensPagina']; $parameters[] = $_POST['qtdeItensPagina']; $sql_post = $sql . " ORDER BY id DESC LIMIT ?, ?"; // the usual prepare/execute/fetch routine $stmt = $conn->prepare($sql_post); $stmt->execute($parameters); $arr_post = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt_qtde = $conn->prepare($sql); $stmt_qtde->execute($parameters); $vet = $stmt_qtde->fetch( PDO::FETCH_ASSOC ); $qtdeTotal = (int)$vet['qtde']; ?> <main role="main"> <section class="shadow-md p-3 bg-white rounded"> <div class="container"> <form method="post"> <div class="form-row align-items-center"> <div class="col-sm-12 col-md-8 "> <input type="text" name="legenda" value="<?=$_POST['legenda']?>" class="form-control" placeholder="Busque por um assunto ou hashtag..."> </div> <div class="col-sm-12 col-md-3 "> <select class="custom-select" name="id_categoria"> <option value="0">Todas categorias...</option> <?php foreach ($arr_cat as $row) {?> <option <?=$row['id'] == $_POST['id_categoria'] ? 'selected' : ''?> value="<?=$row['id'];?>"><?=$row['nome'];?></option> <?php }?> </select> </div> <button type="submit" class=" col-sm-12 col-md-1 btn btn-primary"><i class="fas fa-search"></i></button> </div> <input type="hidden" name="paginaAtual" value="<?=$_POST['paginaAtual']?>" /> </form> </section> <div class="album py-5"> <div class="container"> <?php if (count($arr_post) > 0) { ?> <div class="row"> <?php foreach ($arr_post as $row) {?> <div class="col-sm-12 col-md-3"> <div class="card mb-4 shadow-sm"> <img class="card-img-top" src="<?=$file_path . $row['nome_file']?>"> <div class="card-body"> <div class="card-title"><h6><?=$row['nome']?></h6></div> <div class="d-flex justify-content-between align-items-center"> <div class="btn-group"> <?php if(!$limite_alcancado){?> <a data-toggle="tooltip" title="Ao pressionar download, será copiado a legenda para área de transferência" data-text="<?=$row['legenda']?>" target="_blank" href="_download.php?q=<?=base64_encode($row['id'].$separador.$row['nome'])?>" class="btn btn-sm btn-outline-primary btn_legend"><i class="fas fa-download"></i> Download</a> <a href="detalhe.php?q=<?=base64_encode($row['id'].$separador.$row['nome'])?>" class="btn btn-sm btn-outline-secondary"><i class="fas fa-info-circle"></i> Visualizar Legenda</a> <?php }else{?> <a target="_blank" href="https://www.odontop.com" class="btn btn-sm btn-success"><i class="fas fa-up"></i> Limite alcançado - realizar upgrade?</a> <?php }?> </div> <!-- <small class="text-muted">9 mins</small> --> </div> </div> </div> </div> <?php } //foreach?> </div> <div class="row shadow-md p-3 bg-white rounded"> <div class="col-sm-12 col-md-6"> <div id="paginacao"></div> </div> </div> <?php } else { //if echo '<div class="alert alert-warning">Nenhuma imagem encontrada</div>'; } ?> </div> </div> </main> <footer class="text-muted"> <div class="container"> <p class="float-right"> <a href="#navbarHeader"></a> </p> <p>Odontop - Copyright © 2019</p> </div> </footer> <script type="text/javascript"> const totalItens = <?=$qtdeTotal?>; const itensPorPagina = <?=$_POST['qtdeItensPagina']?>; </script> <script src="js/jquery-3.3.1.slim.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/pagination.min.js"></script> <script src="js/post.js"></script> </body> </html>  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.