RBarCode
Bienvenido a RBarCode, este paquete contiene un applet Java[TM] y una clase
para crear códigos de barras para sus páginas web o sus aplicaciones
Java[TM].
BarCode
Esta sección explica la configuración de los parámetros
de la clase BarCode. Esta clase es un subtipo de java.awt.Canvas y por
lo tanto puede usarla dentro de cualquier contenedor Java[TM].
Los nombres entre paréntesis son los nombres de los parámetros
para el applet.
- barType (parámetro CODE_TYPE en el applet): es el tipo
de código de barras a usar. Valores válidos con: BAR39, BAR39EXT,
CODE39, CODE11, CODABAR, CODE93EXT, CODE128, MSI, IND25, MAT25, INTERLEAVED25,
EAN13, EAN8, CODE128, POSTNET, UPCA y UPCE.
- backColor (BACK_COLOR): color de fondo.
- barColor (BAR_COLOR): color de las barras.
- barHeightCM (parámetro BAR_HEIGHT en el applet: Altura
de las barras en C;. Si este valor es 0, la altura se calcula usando H.
- CODABARStartChar (CODABAR_START): Carácter de inicio
de CODABAR. Valores válidos son "A", "B", "C"
or "D".
- CODABARStopChar (CODABAR_STOP): Carácter de parada
de CODABAR. Valores válidos son "A", "B", "C"
or "D".
- code (parámetro BARCODE en el applet): valor a codificar..
- code128set (parámetro CODE128_SET in applet): juego de
caracteres a usar en el caso de code128. Loas valores válidos son: A,
B or C.
- checkCharacter (CHECK_CHAR): Si es verdadero el software calculará
el carácter de control automáticamente. El applet interpreta
"Y" como verdadero y "N" como falso.
- fontColor (FONT_COLOR): color del texto.
- guardBars (GUARDS_BARS): indica si las barras de guarda serán
más altas que las demás. Sólo para UPC o EAN.
- I (parámetro I en el applet): separador entre carácteres,
sólo para BAR39. Un valor de 1 significa que el separador tendrá
la misma longitud que X.
- H (parámetro H en el applet): Indica como calcular la
altura de las barras. Un valor de 0.5 significa que las barras tendrán
una altura, la mitad de la lóngitud del símbolo.
- leftMarginCM (LEFT_MARGIN): margen izquierdo en CM.
- N (parámetro N en el applet): un valor de 2 significa
que las barras anchas tendrás un anchura el doble que las estrechas.
El defecto es 2.
- PDFColumns (sólo para Barcode2D) (PDF_COLUMNS): número
de columnas para PDF417 (el defecto es 10).
- PDFECLevel (sólo para Barcode2D) (PDF_ECLEVEL): nivel
de corrección de errores para PDF417 (el defecto es 0).
- PDFMode (sólo para Barcode2D) (PDF_COMPACTION): el modo
puede ser NUMERIC, TEXT or BINARY.
- PDFRows (sólo para Barcode2D) (PDF_ROWS): número
de filas para PDF417 (opcional).
- postnetHeightTallBar: altura de las barras altas en Postnet
(en CM).
- postnetHeightShortBar: altura de las barras cortas en Postnet
(en CM).
- rotate (ROTATE): angulo en el que se debe rotar el código
para mostrarlo verticalmente, por ejemplo. Los valores válidos son
0,90,180 y 270.
- supHeight (SUPPLEMENT_HEIGHT): altura relativa de las barras
del suplemento.El defecto (0.8) significa 80% de la altura de las
barras normales.
- supSeparationCM (SUPPLEMENT_SEPARATION): separación en
CM del suplemento y el código.
- textFont (TEXT_FONT): tipo de letra a usar.
- topMarginCM (TOP_MARGIN): margen superior en CM.
- UPCESystem (UPCE_SYSTEM): codificación a usar para UPC.
Valores válidos son 0 y 1.
- UPCEANSupplement2 (SUPPLEMENT=2): indica si los códigos
EAN y UPC tendrán un suplemento de 2 dígitos.
- UPCEANSupplement5 (SUPPLEMENT=5): indica si los códigos
EAN y UPC tendrán un suplemento de 5 dígitos.
- X (parámetro X en el applet):: anchura en centímetros
de las barras estrechas. EL defecto es 0.03.
Cómo crear un fichero gif , png o jpeg.
También puede exportar el código de barras a un fichero gif ,
png o jpeg. Para hacer esto de user el siguiente código:
import com.java4less.rbarcode.*;
bc=new BarCode();
bc.setSize(400,200); // important, set size
....
new barCodeEncoder(bc,"GIF","file.gif");
new barCodeEncoder(bc,"PNG","file.png");
new barCodeEncoder(bc,"JPEG","file.jpg");
notar que:
- El codificador GIF debe descargarse de esta dirección: http://www.acme.com/resources/classes/Acme.tar.gz
- El codificador PNG debe descargarse de esta dirección: http://users.boone.net/wbrameld/pngencoder/
- Para usar JPEG debe tener instalado el paquete com.sun.image.codec.jpeg.
Nota: esto sólo esta disponible para JDK 1.2 o superior
Cómo crear un código de barras en un objeto a java.awt.Image
El siguiente código ilustra como crear un código de barras
en un objeto java.awt.Image
bc=new BarCode();
bc.setSize(400,200); // importante
// crear imagen
java.awt.image.BufferedImage image = new java.awt.image.BufferedImage(
bc.getSize().width,bc.getSize().height,java.awt.image.BufferedImage.TYPE_BYTE_INDEXED
);
// contexto gráfico de la imagen
java.awt.Graphics imgGraphics = image.createGraphics();
// dibujar código de barras en el contexto gráfico
de la imagen
bc.paint(imgGraphics );.
Cómo usar el campo checkCharacter (CHECK_BAR)
Si proporciona un código con el carácter de control ya
calculado, debe asigna al parámetro CHECK_CHAR el valor N (esto
es el defecto). Si por el contrario desea que el software calcule el carácter
de control, debe asignar el valor Y al parámetro CHECK_CHAR.
Los códigos EAN y UPC tienen una longitud fija, por lo tanto
sólo so pueden dar las siguientes combinaciones:
- EAN13: proporcionar 13 dígitos a asignar N a CHECK_CHAR o proporcionar
12 dígitos y asignar Y a CHECK_CHAR.
- EAN8: proporcionar 8dígitos a asignar N a CHECK_CHAR o proporcionar
7 dígitos y asignar Y a CHECK_CHAR.
- UPCA and UPCE: proporcionar 12 dígitos a asignar N a CHECK_CHAR
o proporcionar 11 dígitos y asignar Y a CHECK_CHAR.
Cómo user RBarcode en un sitio web
Existen 2 posibilidades:
- Usar el applet para crear códigos de barras en el navegador.
En este caso debe crear páginas HTML dinámicamente ya que
estas contienen las parámetros para el applet.
- Usar un servlet para crear una imagen gif o jpeg en el servidor
y enviarla al navegador. Ver RBarcodeServlet.java para un ejemplo.
BCApplet
Puede usar el applet BCApplet para mostrar códigos de barras
en sus páginas HTML. Algunos parámetros tienen un formato
especial:
- Colores: valoes válidos son: RED,BLUE,GREEN,BLACK,GRAY,LIGHTGRAY,WHITE,DARKGRAY,YELLOW,ORANGE,CYAN
y MAGENTA. También puede usar el valor numérico RGB (por
ejemplo 0x00FF00 es el verde).
- Los tipos de letra tienen el formato <tipo de letra>|<estilo>|<tamaño>.
El estilo puede ser PLAIN, ITALIC (cursiva) o BOLD (negrita). Ejemplo:
"Arial|BOLD|12"
Ejemplo de uso del applet:
<APPLET CODEBASE = "./" CODE = "com.java4less.barcode.BCApplet.class"
NAME = "TestApplet" WIDTH = 500 HEIGHT = 100 HSPACE = 0 VSPACE
= 0 ALIGN = middle >
<PARAM NAME = "BARCODE" VALUE = "12345667">
<PARAM NAME = "CODE_TYPE" VALUE = "CODE11">
<PARAM NAME = "BAR_COLOR" VALUE = "RED">
<PARAM NAME = "BACK_COLOR" VALUE = "YELLOW">
<PARAM NAME = "LEFT_MARGIN" VALUE = "1">
<PARAM NAME = "TOP_MARGIN" VALUE = "1">
<PARAM NAME = "FONT_COLOR" VALUE = "BLUE"> <
PARAM NAME = "TEXT_FONT" VALUE = "ARIAL|BOLD|14">
<PARAM NAME = "CHECK_CHAR" VALUE = "Y">
<PARAM NAME = "BAR_HEIGHT" VALUE = "1"> </APPLET>
Puede proporcionar los parámetros para el applet en el tag PARAM
o usando JavaScript. Por ejemplo, el siguiente código cambia el
valor del código a codificar:
TestApplet.setParameter(BARCODE,"new value");
TestApplet.refresh();
RBarcodeServlet (el servlet)
RBarcodeServlet le permite usar RBarcode como servlet sin necesidad de programar
en Java. El Servlet tiene la ventaja de que no debe descargar classes desde
el servidor al navegador, ahorrando asi tiempo. Por lo tanto el Servlet crea
graficos más rapidamente. Tiene sin embargo la desventaja de que necesita
que el servidor Web pueda ejecutar Servlets.
En el caso de los servlets, los códigos de barras se crean en el servidor
y se envían al navegador en forma de imagen GIF o JPEG. Esto tiene la
ventaja además de que puede usar RBarcode en navegadores que no soporten
Java.
Puede usar RBarCodeServlet de forma muy sencilla. Los parámetros son
los mismos que los del Applet. Los parámetros se pueden enviar usando
POST o GET. Además existen los siguiente parámetros adicionales:
- WIDTH: anchura en pixels de la imagen resultante. (el defecto es 500).
- HEIGHT: altura en pixels de la imagen resultante. (el defecto es 500).
- FORMAT: formato de la imagen resultante, "gif", "png"
or "jpeg". (el defecto es JPEG)
Note que:
- RBarCodeServlet necesita jdk 1.2 o superior. Es sin embargo posible crear
una version compatible con jdk1.2
- El codificador GIF debe descargarse de esta dirección: http://www.acme.com/resources/classes/Acme.tar.gz
- El codificador PNG debe descargarse de esta dirección: http://users.boone.net/wbrameld/pngencoder/
Para ejecutar el servlet usando JSWDK 1.0 debe hacer lo siguiente:
- copie las clases de RChart a /jswdk-1.0.1/examples/Web-inf/servlets
- Agrege la siguiente línea /jswdk-1.0.1/examples/Web-inf/servlets.properties
:
RBarCodeServlet.code= RBarCodeServlet
- Ejecute el servidor de servlet (startserver.bat) e introduzca la siguiente
URL:
http://localhost:8080/examples/servlet/RBarCodeServlet?BARCODE=123456789012&WIDTH=50&HEIGHT=50&CODE_TYPE=EAN13&CHECK_CHAR=Y
.. ...
- Con los parámetros adicionales puede modificar el formato de la imagen:
http://localhost:8080/examples/servlet/RBarCodeServlet?BARCODE=123456789012&WIDTH=50&HEIGHT=50&CODE_TYPE=EAN13&CHECK_CHAR=Y&FORMAT=gif&WIDTH=600&HEIGHT=600
Tipos de sódigos de barras
A continuación encontrará una corta descripción
de algunos tipos de códigos:
- BAR39: Code 39 es un código alfanumérico que codifica
números decimales, letras mayúsculas y algunos símbolos
especiales: _ . * $ / % +. Si el parámetro CHECK_CHAR vale verdadero,
RBarCode calculará el carácter de control opcional (módulo
43).
- BAR39EXT: Extended Code 39 codifica el juego de carácteres
ASCII (128 carácteres). Si el parámetro CHECK_CHAR vale
verdadero, RBarCode calculará el carácter de control opcional
(módulo 43).
- INTERLEAVED25: "Interleaved 2 of 5" códifica
valores numéricos sólo. Si el parámetro CHECK_CHAR
vale verdadero, RBarCode calculará el carácter de control
opcional (módulo 10).
- UPCA: UPC-A codifica un código de 12 dígitos el
último de los cuales es un carácter de control.
- EAN8: EAN-8 es una version reducida de EAN-13. Incluye 2 o 3
dígitos para el país, 4 o 5 para datos y un dígito
de control.
- EAN13: El símbolo EAN-13 codifica 13 dígitos: los
2 o 3 primeros identifican el país, los 9 o 10 siguientes el producto
y el último es un dígito de control. UPCE: UPC-E es
un código de barras comprimido de 6 dígitos. La compresión
actúa eliminando los ceros del código original UPCA. Por
lo tanto, sólo códigos UPCA con al menos 5 ceros pueden ser
comprimidos.
- CODE128: Code 128 codifica en juego completo de carácteres
ASCII. Si el parámetro CHECK_CHAR vale verdadero, RBarCode calculará
el carácter de control opcional (módulo 103).
- MSI: MSI sólo codifica carácteres numéricos.Si
el parámetro CHECK_CHAR vale verdadero, RBarCode calculará
el carácter de control opcional (módulo 10).
- CODE11: Code 11 es un código numérico con un carácter
especial: - .Si el parámetro CHECK_CHAR vale verdadero, RBarCode
calculará el carácter de control. Si la longitud del valor
a codificar el mayor que 10 se calculará un segundo dígito
de control.
- CODE93: Code 93 es una versión más compacta de
Code 39. Codifica los mismos carácteres que Code 39, pero usa 9
elementos por caráctzer en vet de 15. Si el parámetro CHECK_CHAR
vale verdadero, RBarCode calculará el carácter de control
opcional (módulo 43).
- IND25: "Industrial 2 of 5" es un código numérico.
A diferencia de "Interleaved 2 of 5" toda la información
está codificada en las barras y loas espacios, de longitud fija,
sólo se usan para separar barras. No existe un dígito de
control.
- CODABAR: Codabar es un código númerico con carácteres
especiales (-$:/.+). Si el parámetro CHECK_CHAR vale verdadero,
RBarCode calculará el carácter de control opcional (módulo
16).
En
el web de HP podrá obtener más información