Classe BarCode2of5

6 respostas
F

Baixei a classe BarCode2of5 estou utilizando em meus servlets para gerar código de barra

Qdo compilo da o seguinte Aviso

“The method BarCode2of5.minimumSize() overrides a deprecated method from Component”

alguem saberia o que seria?

Obrigado

6 Respostas

cv1

De onde voce pegou essa classe?

F

Peguei de um post aqui no forum

http://www.javafree.com.br/home/modules.php?name=Downloads&d_op=getit&lid=164

W

Ná época do JSP Brasil, consegui esses códigos aí abaixo para geração de código de barras. Veja se dá certo.

Abaixo segue o código que implementa a página JSP que exibe a imagem: <%

String codBarras = request.getParameter(codBarras);

if(codBarras==null)

codBarras = [telefone removido];

%>

<html>
<head><title>Artigo JSPBrasil - Geração de Imagem “On Fly” em JSP</title>
<meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-1”>
</head>
<body bgcolor="#FFFFFF">
<form>
Código de Barras:
<input type=“text” name=“codBarras”>
<input type=“submit” value=“Gerar Código”><br>

  • Coloque apenas números;<br>
  • Todo código de barras é formado por uma quantidade par de números;
    </form>
    <center>
    <img src=“exibe_imagem.jsp?p_barra=<%= codBarras %>”><br>
    <%= codBarras %>
    </center>
    </body>
    </html>
O trecho é o código JSP que representa a imagem:

<%@ page import=artigos.Boleto %>

<jsp:useBean id=“img” scope=“page” class=“artigos.Boleto” />

<%

response.setContentType(image/jpeg);

response.setHeader (Pragma, no-cache);

response.setHeader (Cache-Control, no-cache);

response.setDateHeader (Expires,0);

%>

<%! boolean retorno;%>

<%! String barras;%>

<%

barras = request.getParameter(p_barra);

retorno = img.criaImagem(barras,pageContext,25);

%>

O terceiro código é o mais complexo e implementa a classe Java responsável por gerar e devolver uma imagem para a saída padrão do JSP, ou seja, para o objeto pageContext passado como parâmetro na chamada ao método “criaImagem” (conforme foi mostrado no código anterior).

Vejamos o código: package artigos;

import java.lang.String.<em>;

import java.lang.</em>;

import javax.servlet.http.<em>;

import javax.servlet.</em>;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.PageContext;

import javax.servlet.<em>;

import <a href="http://java.io">java.io</a>.</em>;

import java.awt.Graphics2D.<em>;

import java.awt.</em>;

import com.sun.image.codec.jpeg.*;

public class Boleto {

java.awt.image.BufferedImage image;

/** Metodo criaImagem

  • Usado para criacao da imagem que representa o codigo de barras
    @author Ricardo Gil
    */
    public boolean criaImagem(String texto,PageContext pageContext, int h)
    throws ServletException,IOException {
    int i, j, tam;
    //Variavel que contem a representacao em Codigo de Barras de cada um dos numeros.
    //Nessa representacao:
    // 0 significa Barra Fina (NARROW);
    // 1 significa Barra Grossa (WIDE).
    String[] barras = {“00110”, //0
    “10001”, //1
    “01001”, //2
    “11000”, //3
    “00101”, //4
    “10100”, //5
    “01100”, //6
    “00011”, //7
    “10010”, //8
    “01010”};//9
    //O Codigo de barras e formado sempre por pares intercalados.
    //Por exemplo 12:
    //Pegando-se a representacao do 1 e do 2 na variavel acima teriamos o seguinte:
    //[telefone removido].
    //Com isso, o primeiro numero representa as Barras Pretas (Fina ou Grossa)
    // e o Segundo numero representa as Barras Brancas, ou espacos, (Fina ou Grossa).
    int preto,branco;
    int w = 9 + (9 * texto.length());
    HttpServletResponse response;
    response = (HttpServletResponse)pageContext.getResponse();
    ServletOutputStream out = response.getOutputStream();
    image = new java.awt.image.BufferedImage(w,h, java.awt.image.BufferedImage.TYPE_INT_RGB);
    tam = 0;
    fillRect(0, 0, w, h, 0x00FFFFFF); //começo do Codigo de Barras = 0 = 00 / 1 = 00
    fillRect(tam, 0, tam+1, h, 0x00000000);
    tam++;
    fillRect(tam, 0, tam+1, h, 0x00FFFFFF);
    tam++;
    fillRect(tam, 0, tam+1, h, 0);
    tam++;
    fillRect(tam, 0, tam+1, h, 0x00FFFFFF);
    tam++;
    //Conteudo do Codigo de Barras
    for(i = 0; i <= texto.length()-1; i++) {
    preto = Integer.parseInt(String.valueOf(texto.charAt(i)));
    branco = Integer.parseInt(String.valueOf(texto.charAt(i+1)));
    i++;
    for(j = 0; j < 5; j++) {
    if(String.valueOf(barras[preto].charAt(j)).equals(“0”)) {
    fillRect(tam, 0, tam + 1, h, 0);
    tam++;
    }
    else { fillRect(tam, 0, tam + 3, h, 0);
    tam+=3;
    }
    if(String.valueOf(barras[branco].charAt(j)).equals(“0”)) {
    fillRect(tam, 0, tam + 1, h, 0x00FFFFFF); tam++;
    }
    else {
    fillRect(tam, 0, tam + 3, h, 0x00FFFFFF); tam += 3;
    }
    }
    }
//fim da barra = 0 = 10 / 1 = 0

fillRect(tam, 0, tam+3, h, 0);

tam+=3;

fillRect(tam, 0, tam+1, h, 0x00FFFFFF);

tam++;

fillRect(tam, 0, tam+1, h, 0);

tam++;
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

encoder.encode(image);

//GifEncoder encoder = new GifEncoder(BarImage ,outb);

<a href="//encoder.encode">//encoder.encode</a>();

// ESSAS DUAS LINHAS ACIMA CRIARIAM UM .gif

out.close();

return true; }
void fillRect(int x0, int y0, int x1, int y1, int color)

{

for (int x=x0 ; x < x1 ; x++){

for (int y=y0 ; y < y1 ; y++){

image.setRGB(x, y, color);

}

}

}

}
F

A classe que tenho esta funcionando blzinha,

O único problema é que fica com os avisos.

Obrigado galera

B

use response.reset() .

kaoe

Se você tem o fonte tira o codigo do minimumSize() e coloca ele em getMinimumSize().

Criado 16 de janeiro de 2004
Ultima resposta 16 de nov. de 2006
Respostas 6
Participantes 5