Boa tarde,
Estou com um problema na geração de boletos bancários pelo jboleto, onde estou utilizando uma servlet onde eu estou conseguindo gerar os boletos com o código de barras tudo certinho, campos preenchido corretamente... só que na hora de jogar para o browser ele joga apenas um boleto... no caso o último.
Estou usando um jsp para chamar a servlet, e a própria servlet, que seguem abaixo.
Fico no aguardo, a parte comentada eu estou gerando em pdf... ele geraria mais de um , mas também não joga no browser em pdf...
boleto.jsp
<html>
<head>
<title>..::Boleto::..</title>
<LINK rel="stylesheet" href="css/estilo.css" type="text/css">
<link rel='stylesheet' type='text/css' href='css/materiais.css' />
<script src="function.js"></script>
<script src="data.js"></script>
</head>
<body>
<form name="form1" action="teste.do?" >
<input type="text" value="1" name="id" maxlength="11">
<br>
<input type="submit" value="Gerar Boleto">
</form>
</body>
</html>
InicioBoleto.java
package teste;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jboleto.JBoleto;
import org.jboleto.JBoletoBean;
import org.jboleto.control.Generator;
import org.jboleto.control.HtmlGenerator;
import org.jboleto.control.PDFGenerator;
import beans.BDConnection;
public class InicioBoleto extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
OutputStream out = response.getOutputStream();
String id = request.getParameter("id");
String sCodBar = request.getParameter("cb");
if(sCodBar==null)
{
PrintStream tela = new PrintStream (out) ;
try
{
//
String valor="0",sacado = "1",emissao = "1", vencimento = "1",
endereco= "1", bairro= "1", cep= "1", cidade= "1", uf= "1",cpf="1";
BDConnection con = new BDConnection();
ResultSet rs;
String consboleto = " select ncliente,inscricao as cpf, endereco, bairro, "+
" cidade, uf, concat(cep,'-',sufcep) as cep, "+
" date_format(emissao, '%d/%m/%Y') as emissao, "+
" date_format(vencimento, '%d/%m/%Y') as vencimento, "+
" valor,carteira, "+
" instrucao1, instrucao2, instrucao3, instrucao4 "+
" from cnabboleto "+
" where id = '"+id+"' ";
boolean resp = con.conectaMySQL_Local();
if(resp)
{
try {
rs = con.statement.executeQuery(consboleto);
rs.first();
sacado = rs.getString("ncliente");
endereco = rs.getString("endereco");
bairro = rs.getString("bairro");
cep = rs.getString("cep");
cidade = rs.getString("cidade");
uf = rs.getString("uf");
emissao = rs.getString("emissao");
vencimento = rs.getString("vencimento");
valor = rs.getString("valor");
cpf = rs.getString("cpf");
rs.close();
con.connection.close();
}
catch(Exception e)
{
tela.println ( "<script>alert('Problemas na geração do boleto! "+id+" - "+e.getMessage()+"');</script>" );
}
JBoletoBean jBoletoBean = new JBoletoBean();
int x=0;
Generator generator = new HtmlGenerator();
byte[] bytes = null;
byte[] unico = null;
for( x=1 ; x<=4 ; x++)
{
jBoletoBean.setDataDocumento("31/05/2006");
jBoletoBean.setDataProcessamento("31/05/2006");
jBoletoBean.setCedente("AINODE Solucoes");
jBoletoBean.setNomeSacado("GtTurbo");
jBoletoBean.setEnderecoSacado("Rua Araticum 951");
jBoletoBean.setBairroSacado("Anil");
jBoletoBean.setCidadeSacado("Rio de Janeiro");
jBoletoBean.setUfSacado("RJ");
jBoletoBean.setCepSacado("22753-501");
jBoletoBean.setCpfSacado("[telefone removido]");
jBoletoBean.setLocalPagamento("ATE O VENCIMENTO, PREFERENCIALMENTE NO BRADESCO");
jBoletoBean.setLocalPagamento2("APOS O VENCIMENTO, SOMENTE NO BRADESCO");
Vector descricoes = new Vector();
descricoes.add("Hospedagem I - teste descricao1 - R$ 39,90");
descricoes.add("Manutencao - teste ricao2 - R$ 32,90");
descricoes.add("Sistema - teste ssssde descricao3 - R$ 45,90");
descricoes.add("Extra - teste de descricao4 - R$ 78,90");
jBoletoBean.setDescricoes(descricoes);
jBoletoBean.setDataVencimento("10/06/2006");
jBoletoBean.setInstrucao1("APOS O VENCIMENTO COBRAR MULTA DE 2%");
jBoletoBean.setInstrucao2("APOS O VENCIMENTO COBRAR R$ 0,50 POR DIA DE ATRASO");
jBoletoBean.setInstrucao3("Parcela: "+x);
jBoletoBean.setInstrucao4("");
jBoletoBean.setCarteira("06");
jBoletoBean.setAgencia("2949");
jBoletoBean.setDvAgencia("1");
jBoletoBean.setContaCorrente("0006580");
jBoletoBean.setDvContaCorrente("3");
jBoletoBean.setNossoNumero("003",11);
jBoletoBean.setValorBoleto("1.00");
//Generator generator = new HtmlGenerator(); foi pra cima
//Generator generator = new PDFGenerator(jBoletoBean, JBoleto.BRADESCO);
JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.BRADESCO);
//em html fazer esta rotina
jBoletoBean.setEnderecoCodBar("teste.do?cb="+jBoletoBean.getCodigoBarras());
jBoleto.addBoleto();
//jBoleto.closeBoleto("bradesco.pdf");
bytes = (generator.toString().getBytes());
unico = bytes;
out.write(unico);
tela.println ( "<script>alert('Boleto! "+x+"');</script>" );
} // for
try {
out.write(unico);
//out.write(generator.toString().getBytes());
out.flush();
//tela.println ( "<script>alert('Boleto! "+x+"');</script>" );
}
catch (IOException e)
{
tela.println ( "<script>alert('Erro! "+e.getMessage()+"');</script>" );
}
}
}//fim try 1
catch(Exception x)
{
tela.println ( "<script>alert('Problemas na geração do boleto! "+id+" - "+x.getMessage()+"');</script>" );
}
}
else
{
HtmlGenerator generator = new HtmlGenerator();
generator.geraCodBar(out, sCodBar);
}
}
}
/*
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jboleto.JBoleto;
import org.jboleto.JBoletoBean;
import org.jboleto.control.Generator;
import org.jboleto.control.PDFGenerator;
public class InicioBoleto extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
JBoletoBean jBoletoBean = new JBoletoBean();
jBoletoBean.setDataDocumento("31/05/2006");
jBoletoBean.setDataProcessamento("31/05/2006");
jBoletoBean.setCedente("AINODE Solucoes");
jBoletoBean.setNomeSacado("GtTurbo");
jBoletoBean.setEnderecoSacado("Rua Araticum 951");
jBoletoBean.setBairroSacado("Anil");
jBoletoBean.setCidadeSacado("Rio de Janeiro");
jBoletoBean.setUfSacado("RJ");
jBoletoBean.setCepSacado("22753-501");
jBoletoBean.setCpfSacado("[telefone removido]");
jBoletoBean.setLocalPagamento("ATE O VENCIMENTO, PREFERENCIALMENTE NO BRADESCO");
jBoletoBean.setLocalPagamento2("APOS O VENCIMENTO, SOMENTE NO BRADESCO");
Vector descricoes = new Vector();
descricoes.add(" I - teste descricao1 - R$ 39,90");
descricoes.add("Manutencao - teste ricao2 - R$ 32,90");
descricoes.add("Sistema - teste ssssde descricao3 - R$ 45,90");
descricoes.add("Extra sistema - teste de descricao4 - R$ 78,90");
jBoletoBean.setDescricoes(descricoes);
jBoletoBean.setDataVencimento("10/06/2006");
jBoletoBean.setInstrucao1("APOS O VENCIMENTO COBRAR MULTA DE 2%");
jBoletoBean.setInstrucao2("APOS O VENCIMENTO COBRAR R$ 0,50 POR DIA DE ATRASO");
jBoletoBean.setInstrucao3("");
jBoletoBean.setInstrucao4("");
jBoletoBean.setCarteira("06");
jBoletoBean.setAgencia("2949");
jBoletoBean.setDvAgencia("1");
jBoletoBean.setContaCorrente("0006580");
jBoletoBean.setDvContaCorrente("3");
jBoletoBean.setNossoNumero("003",11);
jBoletoBean.setValorBoleto("1.00");
//Generator generator = new PDFGenerator(jBoletoBean, JBoleto.BRADESCO);
Generator generator = new PDFGenerator(jBoletoBean, JBoleto.BRADESCO);
JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.BRADESCO);
jBoleto.addBoleto();
String pathJasper = getServletContext().getRealPath(
"/WEB-INF/boletos/") + "/";
String caminho = "bradesco.pdf";
String caminho2 = "itau.pdf";
jBoleto.closeBoleto(pathJasper+caminho);
//jBoleto.closeBoleto(pathJasper+caminho2);
//OutputStream out = response.getOutputStream();
//out.write(generator.toString().getBytes());
//out.flush();
/*
//deu certo
// envia o relatório em formato PDF para o browser
byte[] bytes = null;
// bytes =fileToByte(new File(pathJasper+caminho));
FileInputStream fis = new FileInputStream(pathJasper+caminho);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int bytesRead = 0;
while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
baos.write(buffer, 0, bytesRead);
}
//return baos.toByteArray();
bytes =baos.toByteArray();
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
*/
/*
byte[] bytes = null;
byte[] bytes2= null;
FileInputStream fis = new FileInputStream(pathJasper+caminho);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int bytesRead = 0;
while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
baos.write(buffer, 0, bytesRead);
}
//return baos.toByteArray();
bytes =baos.toByteArray();
FileInputStream fis2 = new FileInputStream(pathJasper+caminho2);
ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
byte[] buffer2 = new byte[8192];
int bytesRead2 = 0;
while ((bytesRead2 = fis2.read(buffer2, 0, 8192)) != -1) {
baos2.write(buffer2, 0, bytesRead2);
}
//return baos.toByteArray();
bytes2 =baos2.toByteArray();
byte[] unico= new byte[bytes.length+bytes2.length];
//int tamanho=bytes.length;
//for(int i=0;i>i ; unico[i]=bytes[i]);
//{
// for(int i=0;i>i; unico[tamanho+1+i]=bytes[i]);
// }
//response.setContentType("application/pdf");
//response.setContentType("text/html");
//response.setContentLength(unico.length);
//ServletOutputStream ouputStream = response.getOutputStream();
//ouputStream.write(bytes2, 0, bytes2.length);
//ouputStream.write(bytes, 0, bytes.length);
//ouputStream.flush();
//ouputStream.close();
response.sendRedirect("mostraboletos.jsp");
}
}
*/