Código de Barra com jasper

Estou fazendo rotinas que geram boletos bancarios,
fiz todo layout com jasper usando ireport

Mas parei na hora de gerar o código de barra,

Alguem tem alguma dica pra passar

Obrigado.

Eu tive esse mesmo problema, tentei utilizar uma fonte externa “3OF9_NEW.TTF” para gerar o código de barras, mas ñ sei pq deu erro no jasper (se alguem souber, poste a solução).

Mas resolvi da seguinte maneira:
Antes de gerar o relatório, gero um .jpg utilizando uma classe chamada “BarCode2of5” (download em http://www.javafree.com.br/home/modules.php?name=Downloads&d_op=getit&lid=164 ).
Ao gerar o relatório passo a imagem gerada do código de barras.

Valew

testei deu certo ,

gero o código de barras num .jpg e passo o path com parametro para o jasper.

Baixei a ultima versão do jasper e testei alterando a fonte para uma fonte de código de barras (3OF9_NEW.TTF) e funcionou, com isso ñ precisa gerar nenhuma imagem, fica mais fácil de modificar o padrão do barcode e nem se preocupar em apagar a imagem.

Pessoal,

Gostaria de contar com a ajuda de vocês.
Preciso gerar um boleto em PDF com Jasper e Java (WEB), e já estou quase no término da minha tarefa, porém estou encontrando problemas com a geração de códigos de barra.

Vi que tem um tipo que é muito utilizado que é o “Interleaved 2 of 5”, porém estou um pouco perdido.
Já achei diversos exemplos na Internet, mas eles eram ou de aplicações stand-alone ou de geração de imagem em disco, o que não acho legal.
Achei uma classe na internet que trabalha com um jar chamado barbecue-1.1.jar, porém ele gera a imagem em disco. Acredito que pode haver um problema caso duas usuários consigam chamar a geração do PDF de Boleto ao mesmo mili-segundo. Quase impossível, mas pode ocorrer. Quero evitar esse tipo de problema.

Um amigo meu que trabalha comigo utilizou essa solução de geração de imagem pois na versão 0.4 do iReport o código de barras não vinha com o QUIET ZONE que a FENABAN obriga ter.

Estou usando no momento a versão 1.2.0 do iReport, e acredito que isto já esteja corrigido. O problema é que eu não consigo nem exibir o PDF. Adicionei o objeto de código de barras no relatório e em suas configurações coloco ele pegando o valor de um atributo do meu VO que representa a CCB.
Esse atributo é do tipo String e possui a linah digitável que eu pego de um serviço CICS, porém sem espaços em branco e pontos.

Barcode expression: $F{codigoBarra}

Configurei o código de barras como Int2of5 no atributo “Type” da aba “Barcode”.

No meu lib do WEB-INF possuo os seguintes .jar do jasper:
. jasperreports-1.2.0.jar
. itext-1.02b.jar
. barbecue-1.1.jar

A geração do meu boleto em PDF fiz da seguinte maneira:

private void gerarBoleto(CcbVO ccb, HttpServletResponse response) throws GeracaoPDFBoletoException {
byte[] arquivoPdf = null;

List beans = new ArrayList();
beans.add(ccb);
JRDataSource jrds = new JRBeanArrayDataSource(beans.toArray());

//Geração de código de barra
//this.gerarCodigoBarra(ccb.getCodigoBarra());

String nomeArquivo =
“boleto_”

  • Mascara.getValorFormatado(String.valueOf(ccb.getCdSucursal()), “###”)
  • “-”
  • Mascara.getValorFormatado(String.valueOf(ccb.getNrProposta()), “##########”)
  • “-”
  • Mascara.getValorFormatado(String.valueOf(ccb.getNrItem()), “####”)
  • “.pdf”;

try {
InputStream stream = getServlet().getServletContext().getResourceAsStream(ApplicationResources.VALUE_PATH_RELATORIO_BOLETO_PDF);
JasperReport relatorio = (JasperReport) JRLoader.loadObject(stream);
JasperPrint impressao = JasperFillManager.fillReport(relatorio, new HashMap(), jrds);
arquivoPdf = JasperExportManager.exportReportToPdf(impressao);

} catch (JRException jre) {
throw new GeracaoPDFBoletoException(jre);
}

response.reset();
response.setContentType(“application/x-msdownload”);
response.setHeader(“Content-Disposition”, “attachment; filename=” + nomeArquivo);
response.setContentLength(arquivoPdf.length);
try {
response.getOutputStream().write(arquivoPdf);
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (IOException ioe) {
throw new GeracaoPDFBoletoException(ioe);
}
}

O erro que estou recebendo ao chamar a geração do PDF é:

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(13,$F{codigoBarra},false,false,null,0,0)

Alguém poderia me ajudar?

Abração galera.
Ricardo