Generar códigos de barras en Java

Zeeshan Afridi 12 octubre 2023
  1. Tipos de códigos de barras
  2. Utilice la biblioteca zxing para generar códigos de barras en Java
  3. Utilice la biblioteca itextpdf para generar códigos de barras en Java
  4. Conclusión
Generar códigos de barras en Java

Un código de barras consta de barras y espacios. Es simplemente una representación legible por máquina de caracteres y números en forma de un patrón de líneas paralelas de diferentes anchos.

Estos patrones se colocan en las tarjetas de identificación minorista, los artículos de la tienda y el correo postal para identificar el número, la ubicación o el nombre de un producto en particular. Un símbolo de código de barras tiene cinco componentes, es decir, una zona silenciosa, un carácter de inicio, un carácter de parada, caracteres de datos y otra zona silenciosa.

Tipos de códigos de barras

Para identificar los códigos de barras, echemos un vistazo a los tipos de códigos de barras que se muestran a continuación:

  1. Códigos de barras lineales (1D)
  2. Códigos de barras de matriz (2D)

Algunos de los formatos de código de barras más utilizados son UPC, Code 39, Extended Code39, Code 128, EAN 128 y QR Code.

Podemos generar códigos de barras en Java con la ayuda de las dos bibliotecas más utilizadas, que son itextpdf y zxing.

Utilice la biblioteca zxing para generar códigos de barras en Java

Podemos usar la biblioteca zxing para generar códigos de barras en Java. zxing significa Paso de cebra.

Para usar esta biblioteca, debemos seguir estos pasos en IntelliJ IDEA.

  • Crea un nuevo proyecto con el lenguaje Java y construye el sistema maven.
  • Abra pom.xml y escriba el siguiente código.
    <dependencies>
    	<dependency>
    		<groupId>com.google.zxing</groupId>
    		<artifactId>core</artifactId>
    		<version>3.3.0</version>
    	</dependency>
    	<dependency>
    		<groupId>com.google.zxing</groupId>
    		<artifactId>javase</artifactId>
    		<version>3.3.0</version>
    	</dependency>
    </dependencies>
    
  • Presione el botón cargar cambios maven o presione la tecla de método abreviado ctrl+shift+o.

Cuando sincronizamos dependencias, podemos importar zxing en nuestro programa.

Ejemplo:

Este código generará una imagen de los dos códigos de barras mayoritariamente utilizados, Código 128 y EAN 8. Recuerda, debes crear la ruta de las imágenes en tu computadora.

package org.example;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.oned.Code128Writer;
import com.google.zxing.oned.EAN8Writer;
import java.nio.file.Paths;

public class Main {
  public static void main(String[] args) {
    try {
      // Content for encode function of code128writer
      String text = "http://www.google.com";

      // Path where we save our barcode
      String path = "E:\\barcode image\\code128barcode.jpg";

      // Barcode code128 writer object
      Code128Writer c128writer = new Code128Writer();

      // Represents a 2D matrix of bits. Create a bar code with a width of 500 and a height of 300
      BitMatrix matrix = c128writer.encode(text, BarcodeFormat.CODE_128, 500, 300);

      MatrixToImageWriter.writeToPath(matrix, "jpg", Paths.get(path));

      System.out.println("Barcode image file is created...");

      // Digits for encode function of EAN_8
      String digits = "12345678";

      // Path where we save our barcode
      path = "E:\\barcode image\\EANbarcode.jpg";

      // Barcode EAN8 writer object
      EAN8Writer EANwriter = new EAN8Writer();

      /*Represents a 2D matrix of bits.
      Create an EAN bar code of width 500 and height 300*/
      matrix = EANwriter.encode(digits, BarcodeFormat.EAN_8, 500, 300);

      MatrixToImageWriter.writeToPath(matrix, "jpg", Paths.get(path));

      System.out.println("Barcode image file is created...");

    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Producción:

generación de código de barras java

Utilice la biblioteca itextpdf para generar códigos de barras en Java

Con la ayuda de la biblioteca itextpdf, podemos generar códigos de barras en Java y almacenarlos fácilmente en formato PDF. Para utilizar esta biblioteca, debemos seguir estos pasos.

  • Descarga la biblioteca itextpdf desde aquí.
  • Abra IntelliJ IDEA.
  • Cree un nuevo proyecto con el lenguaje Java.
  • Haga clic derecho en la carpeta del proyecto.
  • Abra la configuración del módulo o presione F4.
  • Haga clic en la pestaña dependencias.
  • Presione el botón agregar o presione Alt+Insertar.
  • Seleccione itextpdf.jar, que descargamos del sitio web itextpdf.

Podemos importar itextpdf en nuestro código Java para generar códigos de barras.

Ejemplo:

Con la ayuda de este ejemplo, podemos almacenar los códigos de barras Code 128 y EAN 13 en formato PDF.

package org.example;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.Barcode128;
import com.itextpdf.text.pdf.BarcodeEAN;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;

public class Main {
  public static void main(String[] args) {
    Main.barcodePDF("mybarcodepdf.pdf", "Zeshan");
  }
  public static void barcodePDF(String pdfFilename, String myString) {
    // declare object of document class of the itextpdf library
    Document doc = new Document();
    PdfWriter pdfWriter = null;

    try {
      // initialize docWriter object with the path of the pdf file
      // mention the path of your computer
      pdfWriter =
          PdfWriter.getInstance(doc, new FileOutputStream("E:\\my barcode pdf\\" + pdfFilename));

      // set pdf file properties
      doc.addAuthor("zeshan");
      doc.addCreationDate();
      doc.addProducer();
      doc.addCreator("google.com");
      doc.addTitle("java barcode generation");
      doc.setPageSize(PageSize.A4);
      doc.open();

      /*PdfContentByte is an object that contains the user-positioned text and
      graphic contents of a page*/
      PdfContentByte cb = pdfWriter.getDirectContent();

      // type of barcode
      Barcode128 code128 = new Barcode128();

      // remove all leading and trail space and pass to set code
      code128.setCode(myString.trim());
      code128.setCodeType(Barcode128.CODE128);

      /*create the image of the barcode with null bar color and null text color
      set its position and scale percent*/
      Image code128Image = code128.createImageWithBarcode(cb, null, null);
      code128Image.setAbsolutePosition(10, 700);
      code128Image.scalePercent(150);

      // Add image to pdf file
      doc.add(code128Image);

      // Type of barcode
      BarcodeEAN codeEAN = new BarcodeEAN();

      // Remove all leading and trail space and pass to set code
      codeEAN.setCode(myString.trim());

      // Set barcode type
      codeEAN.setCodeType(BarcodeEAN.EAN13);

      /* Create an image of the barcode with a null bar color and
      null text color its position and scale percent */
      Image codeEANImage = code128.createImageWithBarcode(cb, null, null);
      codeEANImage.setAbsolutePosition(10, 600);
      codeEANImage.scalePercent(150);

      // Add image to pdf file
      doc.add(codeEANImage);
      System.out.println("Barcode in PDF file is created...");

    } catch (Exception ex) {
      ex.printStackTrace();
    } finally {
      // close doc and docwriter if they are not null
      if (doc != null) {
        doc.close();
      }
      if (pdfWriter != null) {
        pdfWriter.close();
      }
    }
  }
}

Producción:

generación de código de barras java

Conclusión

Los códigos de barras inscriben los datos del producto en barras y caracteres alfanuméricos, lo que hace que sea mucho más rápido y fácil ingresar cosas en una tienda o rastrear el inventario en un almacén excedente. Además de la facilidad y la velocidad, las ventajas comerciales destacadas de los códigos de barras abarcan la precisión, el control interno y el ahorro de precios: su medida cuadrada es la de muchos códigos de barras.

Hay muchos formatos de códigos de barras. Usamos diferentes formatos en diferentes situaciones.

Podemos utilizar todos los formatos de código de barras con la ayuda de las bibliotecas zxing e itextpdf. Hay otras bibliotecas, pero estas dos son fáciles y rápidas.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn