iText - Codigos de Barras - Clases de iText relacionada al código de barras - ¿Como generar un código de barra con iText? - ¿Como insertar un código de barras a un PDF ?

Hace demasiado ya que no retomamos con iText, pero todavía quedan muchos temas inconclusos, entre ellos uno de los que vamos a tratar hoy, ¿Como generar códigos de barras con itext?


iText - ¿Que es un código de barras? - ¿ Como debemos ver los códigos de barras en iText?

De acuerdo a wikipedia
El código de barras es un código basado en la representación mediante un conjunto de líneas paralelas verticales de distinto grosor y espaciado que en su conjunto contienen una determinada información, es decir, las barras y espacios del código representan pequeñas cadenas de caracteres. De este modo, el código de barras permite reconocer rápidamente un artículo de forma única, global y no ambigua en un punto de la cadena logística y así poder realizar inventario o consultar sus características asociadas. Actualmente, el código de barras está implantado masivamente de forma global.
Con la explicación que citamos arriba vamos a entender fácilmente que si bien vemos barras y números el resultado final es solamente una imagen. (Esta es la parte que dicen "AHHH ya entiendo por que hace unos meses hablaste de imágenes"... y si pasito a pasito).

iText - Clases de iText relacionada al código de barras

En iText existe una clase por tipo de código de barras, la misma se encarga de todos sus métodos y propiedades. Dichas clases las podemos diferencias en: Códigos de Barras Normales y Códigos de Barras con Matriz

Códigos de Barras Normales

iText - Clases de iText relacionada al código de barras

Todas estas clases con excepción de BarcodeEANSUPP, se puede setear el código de barras con el método setCode().

 Códigos de Barras con Matriz

iText - Clases de iText relacionada al código de barras


Los diferentes códigos de matriz no tienen una superclase común en iText. Cada tipo tiene su propio conjunto típico de propiedades. Códigos PDF417 se pueden segmentar, y se puede establecer la relación de aspecto. Para Data Matrix, puede configurar las opciones de ancho, alto, y codificación. Lo mismo ocurre con los codigos QR, donde se define una anchura y una altura, junto con mas propriedades que se enumeran en la documentación de la API.

iText - ¿Como generar un código de barra con iText? - ¿Como insertar un código de barras a un PDF ? (Códigos de Barras Normales)

Vamos a dar por sabido, ya que todos son lectores habituales de este blog  (???) que previamente han abierto ya el documento y han puesto el path del pdf si no es así pasar por acá.

Bien una vez que ya tenemos definido el tipo de barcode que utilizaremos buscaremos la clase relacionada con el, en nuestro ejemplo utilizaremos el tipo de código EAN-13, lo cual le corresponde la clase  BarcodeEAN. (Cualquier duda consultar la tabla mas arriba)

En primera instancia instanciamos la clase que utilizaremos (BarcodeEAN)
BarcodeEAN codeEAN = new BarcodeEAN();

Luego asignamos el tipo código elegido (EAN-13), mediante el metodo setCodeType()
codeEAN.setCodeType(Barcode.EAN13);

Luego asignamos el valor al código de barras, mediante el método setCode()
codeEAN.setCode("9781935182610");

Luego mediante la ayuda del método createImageWithBarcode pasamos la clase al tipo objeto:
Image img = codeEAN.createImageWithBarcode( pdfw.getDirectContent(), null, null);

NOTA: Tengamos en cuenta que al momento de enviarlo al tipo imagen podemos asignar el color a las letras y al código de barras. por ejemplo:
Image img = codeEAN.createImageWithBarcode( pdfw.getDirectContent(), BaseColor.GREEN, BaseColor.RED);

Finalmente, agregamos la imagen al documento:
documento.add(img);

Resultado:

iText - ¿Como generar un código de barra con iText? - Codigo EAN con iText

Código Completo:

package com.java.white.box.itext.barcode;
import java.io.FileOutputStream;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.Barcode;
import com.itextpdf.text.pdf.BarcodeEAN;
import com.itextpdf.text.pdf.PdfWriter;
/**
* @author usuario
*/
public class MainCodigoBarrasNormales {

/**
* @param args
*/
public static void main(String[] args) {

// Por defecto es A4
Document documento = new Document();

try {
// Obtenemos una instancia de un objeto PDFWriter
PdfWriter pdfw = PdfWriter.getInstance(documento, new FileOutputStream("EjemploCodigoDeBarras03.pdf"));
//Abro el documento
documento.open();
//Preparo las variables para utilizar la imagen
Image img;
//Es el tipo de clase
BarcodeEAN codeEAN = new BarcodeEAN();
//Seteo el tipo de codigo
codeEAN.setCodeType(Barcode.EAN13);
//Setep el codigo
codeEAN.setCode("9781935182610");
//Paso el codigo a imagen
img = codeEAN.createImageWithBarcode( pdfw.getDirectContent(), BaseColor.GREEN, BaseColor.RED);
//Agrego la imagen al documento
documento.add(img);
documento.close();
} catch (DocumentException ex) {
// Atrapamos excepciones concernientes al documentoo.
} catch (java.io.IOException ex) {
// Atrapamos excepciones concernientes al I/O.
}
}
}


iText - ¿Como generar un código de barra con iText? - ¿Como insertar un código de barras a un PDF ? (Códigos de Barras con Matriz)


Bueno si llegamos hasta acá, estamos por poner algún tipo de código matriz, en nuestro ejemplo mostraremos como hacer un pdf con iText y el CODIGO QR.

Primero debemos setear el valor que posea nuestro código QR dentro de una variable del tipo String.
String textCodigoQR = "http://java-white-box.blogspot.com";

Luego una instancia de la clase BarcodeQRCode correspondiente al CÓDIGO QR, pasandole al constructor nuestro valor que previamente fue asignado a la variable.
BarcodeQRCode codigoBarrasQR = new BarcodeQRCode(textCodigoQR, 0, 0, null);

Nota:  El constructor de la clase BarcodeQRCode, posee cuatro parámetros, valor, alto, ancho y la manera de como se arma el código QR, por defecto esta ultima le asignamos null.

Finalmente obtenemos la imagen del código QR y la agregamos al documento, gracias al método getImage() de la clase BarcodeQRCode.
documento.add(codigoBarrasQR.getImage());

Resultado:

iText - ¿Como generar un código de barra con iText? - Codigo QR con iText

Código Completo:
package com.java.white.box.itext.barcode;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.BarcodeQRCode;
import com.itextpdf.text.pdf.PdfWriter;

/**
* @author nconde
*/
public class MainCodigoBarrasMatriz {

/**
* @param args
*/
public static void main(String[] args) {

// Por defecto es A4
Document documento = new Document();

try {
// Obtenemos una instancia de un objeto PDFWriter
PdfWriter.getInstance(documento, new FileOutputStream("EjemploCodigoDeBarras04.pdf"));
// Abrimos el documento
documento.open();
// Seteamos a la variable el valor que deseamos que tenga el Codigo QR
String textCodigoQR = "http://java-white-box.blogspot.com";
// Realizamos una instancia de la clase la cual genera el Codigo QR
// y seteamos el valor al codigo QR
BarcodeQRCode codigoBarrasQR = new BarcodeQRCode(textCodigoQR, 0, 0, null);
// Agregamos la imagen del codigo QR al documento
documento.add(codigoBarrasQR.getImage());
// Cerramos el documento
documento.close();
} catch (DocumentException ex) {
// Atrapamos excepciones concernientes al documentoo.
} catch (java.io.IOException ex) {
// Atrapamos excepciones concernientes al I/O.
}
}
}


Bueno amigos espero que el tutorial haya resultado fácil, entendible, y que ahora en mas puedan poner sus códigos de barras usando iText!
iText - Codigos de Barras - Clases de iText relacionada al código de barras - ¿Como generar un código de barra con iText? - ¿Como insertar un código de barras a un PDF ? iText -  Codigos de Barras - Clases de iText relacionada al código de barras - ¿Como generar un código de barra con iText? - ¿Como insertar un código de barras a un PDF ? Reviewed by El lado oscuro de java on septiembre 30, 2014 Rating: 5

7 comentarios:

  1. Muy bueno tu aporte !! pana pero como hago para agregar textoo en la imagen que contiene el codigo de barras !!! Muchas gracias !!

    ResponderEliminar
    Respuestas
    1. Hola Edgar fijate en este mismo post iText - ¿Como generar un código de barra con iText? - ¿Como insertar un código de barras a un PDF ? (Códigos de Barras con Matriz), que contine como dentro del codigo de barra meter un texto. Saludos

      Eliminar
    2. Buenas Tardes.

      Me gustaria saber como imprimir directamente el codigo de barra
      a la impresora desde java swing, especificamente en una bematech 4200

      Eliminar
  2. Respuestas
    1. Gracias Batta hago todo lo posible para tratar de explicar todos los Frameworks java. Saludos

      Eliminar
  3. hey.. i need itext library to create barcode & export them to pdf. can u send me to ahmad.tauhid.cp@gmail.com. thanks.

    ResponderEliminar
  4. estoy en evaluado vale verga tengo hora y media para hacerlo

    ResponderEliminar

Con la tecnología de Blogger.