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>