Quick Generation Examples

Quick Generation Examples

This guide provides quick, ready-to-use examples for barcode generation with Aspose.BarCode for Java. All examples use consistent APIs and include proper error handling.

Basic Setup

Import the required package:

import com.aspose.barcode.generation.*;

Simple Barcode Generation

Code 128 Barcode

public class Code128Example {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.CODE_128, "ABC-12345");

            // Basic settings
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.3f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(10.0f);

            gen.save("code128.png", BarCodeImageFormat.PNG);
            System.out.println("Code 128 barcode generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

QR Code Generation

public class QRExample {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.QR, "https://www.aspose.com");

            // QR-specific settings
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.5f);
            gen.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.AUTO);
            gen.getParameters().getBarcode().getQR().setQrErrorLevel(QRErrorLevel.LEVEL_M);

            gen.save("qrcode.png", BarCodeImageFormat.PNG);
            System.out.println("QR Code generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

One-Minute Examples

1. Generate EAN-13 Barcode

public class EAN13Example {
    public static void main(String[] args) {
        try {
            // Create EAN-13 barcode (requires 13 digits with valid checksum)
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.EAN_13, "5901234123457");

            // Standard EAN-13 settings
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.33f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(25.0f);

            gen.save("ean13.png", BarCodeImageFormat.PNG);
            System.out.println("EAN-13 barcode generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

2. Generate PDF417 with Custom Settings

public class PDF417Example {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(
                    EncodeTypes.PDF_417,
                    "Aspose.BarCode makes barcode generation easy!"
            );

            // PDF417-specific parameters
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.6f);
            gen.getParameters().getBarcode().getPdf417().setColumns(3);
            gen.getParameters().getBarcode().getPdf417().setRows(6);

            // Code text below barcode
            gen.getParameters().getBarcode().getCodeTextParameters().setLocation(CodeLocation.BELOW);
            gen.getParameters().getBarcode().getCodeTextParameters().getFont().setFamilyName("Arial");
            gen.getParameters().getBarcode().getCodeTextParameters().getFont().getSize().setPoint(9);

            gen.save("pdf417.png", BarCodeImageFormat.PNG);
            System.out.println("PDF417 barcode generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

3. Generate DataMatrix with Custom Encoding

public class DataMatrixExample {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(
                EncodeTypes.DATA_MATRIX, 
                "DMX-INV-000042"
            );
            
            // DataMatrix settings
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.4f);
            gen.getParameters().getBarcode().getDataMatrix()
                .setDataMatrixEncodeMode(DataMatrixEncodeMode.AUTO);
            
            // Optional: enable anti-aliasing for better quality
            gen.getParameters().setUseAntiAlias(true);
            
            gen.save("datamatrix.png", BarCodeImageFormat.PNG);
            System.out.println("DataMatrix barcode generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Common Barcode Types

Linear Barcodes

import com.aspose.barcode.generation.*;

public class LinearBarcodesExample {
    public static void main(String[] args) {
        try {
            generateLinearBarcodes();
            System.out.println("All linear barcodes generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
    
    public static void generateLinearBarcodes() throws Exception {
        // UPC-A (12 digits)
        BarcodeGenerator upcGen = new BarcodeGenerator(EncodeTypes.UPCA, "036000291452");
        upcGen.getParameters().getBarcode().getXDimension().setMillimeters(0.33f);
        upcGen.save("upca.png", BarCodeImageFormat.PNG);
        
        // EAN-13 (13 digits)
        BarcodeGenerator eanGen = new BarcodeGenerator(EncodeTypes.EAN_13, "5901234123457");
        eanGen.getParameters().getBarcode().getXDimension().setMillimeters(0.33f);
        eanGen.save("ean13.png", BarCodeImageFormat.PNG);
        
        // Code 39
        BarcodeGenerator code39Gen = new BarcodeGenerator(EncodeTypes.CODE_39, "ASPOSE-123");
        code39Gen.getParameters().getBarcode().getXDimension().setMillimeters(0.4f);
        code39Gen.save("code39.png", BarCodeImageFormat.PNG);
        
        // Code 128
        BarcodeGenerator code128Gen = new BarcodeGenerator(EncodeTypes.CODE_128, "ABC-12345");
        code128Gen.getParameters().getBarcode().getXDimension().setMillimeters(0.3f);
        code128Gen.save("code128.png", BarCodeImageFormat.PNG);
    }
}

2D Barcodes

import com.aspose.barcode.generation.*;

public class TwoDBarcodesExample {
    public static void main(String[] args) {
        try {
            generate2DBarcodes();
            System.out.println("All 2D barcodes generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
    
    public static void generate2DBarcodes() throws Exception {
        // QR Code
        BarcodeGenerator qrGen = new BarcodeGenerator(EncodeTypes.QR, "QR Code Data");
        qrGen.getParameters().getBarcode().getXDimension().setMillimeters(0.5f);
        qrGen.save("qr_code.png", BarCodeImageFormat.PNG);
        
        // Aztec
        BarcodeGenerator aztecGen = new BarcodeGenerator(EncodeTypes.AZTEC, "Aztec Data");
        aztecGen.getParameters().getBarcode().getXDimension().setMillimeters(0.5f);
        aztecGen.save("aztec.png", BarCodeImageFormat.PNG);
        
        // DataMatrix
        BarcodeGenerator dmGen = new BarcodeGenerator(EncodeTypes.DATA_MATRIX, "DataMatrix");
        dmGen.getParameters().getBarcode().getXDimension().setMillimeters(0.4f);
        dmGen.save("datamatrix.png", BarCodeImageFormat.PNG);
        
        // PDF417
        BarcodeGenerator pdf417Gen = new BarcodeGenerator(EncodeTypes.PDF_417, "PDF417 Data");
        pdf417Gen.getParameters().getBarcode().getXDimension().setMillimeters(0.6f);
        pdf417Gen.save("pdf417.png", BarCodeImageFormat.PNG);
    }
}

Customization Examples

Custom Colors and Styling

import com.aspose.barcode.generation.*;
import java.awt.Color;

public class CustomizationExample {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.CODE_128, "CUSTOM-STYLE");
            
            // Custom colors
            gen.getParameters().setBackColor(Color.WHITE);
            gen.getParameters().getBarcode().setBarColor(Color.BLUE);
            
            // Dimensions
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.4f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(15.0f);
            
            // Code text styling
            gen.getParameters().getBarcode().getCodeTextParameters().setLocation(CodeLocation.BELOW);
            gen.getParameters().getBarcode().getCodeTextParameters().setColor(Color.RED);
            gen.getParameters().getBarcode().getCodeTextParameters().getFont().setFamilyName("Arial");
            gen.getParameters().getBarcode().getCodeTextParameters().getFont().getSize().setPoint(12);
            gen.getParameters().getBarcode().getCodeTextParameters().getFont().setStyle(FontStyle.BOLD);
            
            // Add padding
            gen.getParameters().getBarcode().getPadding().getLeft().setMillimeters(3.0f);
            gen.getParameters().getBarcode().getPadding().getRight().setMillimeters(3.0f);
            gen.getParameters().getBarcode().getPadding().getTop().setMillimeters(2.0f);
            gen.getParameters().getBarcode().getPadding().getBottom().setMillimeters(2.0f);
            
            gen.save("custom_style.png", BarCodeImageFormat.PNG);
            System.out.println("Custom styled barcode generated!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Multiple Output Formats

import com.aspose.barcode.generation.*;

public class OutputFormatsExample {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.CODE_128, "MULTI-FORMAT");
            
            // Configure once
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.3f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(12.0f);
            gen.getParameters().setResolution(300.0f);
            
            // Save in different formats
            gen.save("barcode.png", BarCodeImageFormat.PNG);   // Recommended
            gen.save("barcode.svg", BarCodeImageFormat.SVG);   // Vector (scalable)
            gen.save("barcode.bmp", BarCodeImageFormat.BMP);   // Uncompressed
            gen.save("barcode.gif", BarCodeImageFormat.GIF);   // Simple graphics
            gen.save("barcode.tiff", BarCodeImageFormat.TIFF); // Professional printing
            
            System.out.println("Barcodes saved in multiple formats!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Note: Avoid JPEG format for barcodes as compression artifacts can make them unscannable.

Performance: Batch Generation

import com.aspose.barcode.generation.*;

public class BatchGenerationExample {
    public static void main(String[] args) {
        try {
            String[] codes = {"PROD001", "PROD002", "PROD003", "PROD004", "PROD005"};
            
            // Create generator once and reuse for better performance
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.CODE_128, codes[0]);
            
            // Set common parameters once
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.3f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(10.0f);
            gen.getParameters().setResolution(300.0f);
            
            // Generate batch
            for (int i = 0; i < codes.length; i++) {
                gen.setCodeText(codes[i]);  // Only change the code text
                gen.save("batch_" + codes[i] + ".png", BarCodeImageFormat.PNG);
            }
            
            System.out.println("Batch generation completed: " + codes.length + " barcodes");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Performance Tip: Reusing a BarcodeGenerator instance is significantly faster than creating a new one for each barcode.

GS1 Barcodes

GS1-128 with Application Identifiers

import com.aspose.barcode.generation.*;

public class GS1Example {
    public static void main(String[] args) {
        try {
            // Use parentheses format - FNC1 is handled automatically
            String gs1Data = "(01)09501101530008" +  // GTIN
                             "(17)251231" +           // Expiration date
                             "(10)BATCH-42";          // Batch number
            
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.GS_1_CODE_128, gs1Data);
            
            // Standard GS1-128 settings
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.33f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(15.0f);
            gen.getParameters().setResolution(300.0f);
            
            gen.save("gs1_128.png", BarCodeImageFormat.PNG);
            System.out.println("GS1-128 barcode generated successfully!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

GS1 DataMatrix and QR

import com.aspose.barcode.generation.*;

public class GS1_2D_Example {
    public static void main(String[] args) {
        try {
            String gs1Data = "(01)12345678901231(21)SERIAL123";
            
            // GS1 DataMatrix
            BarcodeGenerator dmGen = new BarcodeGenerator(
                EncodeTypes.GS_1_DATA_MATRIX, 
                gs1Data
            );
            dmGen.getParameters().getBarcode().getXDimension().setMillimeters(0.4f);
            dmGen.save("gs1_datamatrix.png", BarCodeImageFormat.PNG);
            
            // GS1 QR Code
            BarcodeGenerator qrGen = new BarcodeGenerator(
                EncodeTypes.GS_1_QR, 
                gs1Data
            );
            qrGen.getParameters().getBarcode().getXDimension().setMillimeters(0.5f);
            qrGen.save("gs1_qr.png", BarCodeImageFormat.PNG);
            
            System.out.println("GS1 2D barcodes generated!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Postal Barcodes

import com.aspose.barcode.generation.*;

public class PostalBarcodesExample {
    public static void main(String[] args) {
        try {
            // USPS Postnet (ZIP or ZIP+4)
            BarcodeGenerator postnetGen = new BarcodeGenerator(
                EncodeTypes.POSTNET, 
                "205001234"  // 9 digits for ZIP+4
            );
            postnetGen.getParameters().getBarcode().getXDimension().setMillimeters(0.5f);
            postnetGen.save("postnet.png", BarCodeImageFormat.PNG);
            
            // USPS Planet
            BarcodeGenerator planetGen = new BarcodeGenerator(
                EncodeTypes.PLANET, 
                "205001234"
            );
            planetGen.getParameters().getBarcode().getXDimension().setMillimeters(0.5f);
            planetGen.save("planet.png", BarCodeImageFormat.PNG);
            
            // USPS Intelligent Mail (OneCode)
            // Format: 20 digits (tracking) + 11 digits (routing) = 31 digits
            String intelligentMail = "01234567094987654321" + "01234567891";
            BarcodeGenerator imbGen = new BarcodeGenerator(
                EncodeTypes.ONE_CODE, 
                intelligentMail
            );
            imbGen.getParameters().getBarcode().getXDimension().setMillimeters(0.5f);
            imbGen.save("intelligent_mail.png", BarCodeImageFormat.PNG);
            
            System.out.println("Postal barcodes generated!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Advanced Features

Rotation

import com.aspose.barcode.generation.*;

public class RotationExample {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.CODE_128, "ROTATED");
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.3f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(10.0f);
            
            // Generate at different angles
            float[] angles = {0, 90, 180, 270};
            for (float angle : angles) {
                gen.getParameters().setRotationAngle(angle);
                gen.save("rotated_" + (int)angle + ".png", BarCodeImageFormat.PNG);
            }
            
            System.out.println("Rotated barcodes generated!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Resolution and Size Control

import com.aspose.barcode.generation.*;

public class ResolutionExample {
    public static void main(String[] args) {
        try {
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.CODE_128, "HIGH-RES");
            
            // Set barcode dimensions
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.3f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(12.0f);
            
            // Set high resolution for printing
            gen.getParameters().setResolution(300.0f);
            
            // Control image size
            gen.getParameters().getImageWidth().setPixels(500);
            gen.getParameters().getImageHeight().setPixels(200);
            gen.getParameters().setAutoSizeMode(AutoSizeMode.NEAREST);
            
            gen.save("high_resolution.png", BarCodeImageFormat.PNG);
            System.out.println("High resolution barcode generated!");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Complete Example: Product Label

import com.aspose.barcode.generation.*;
import java.awt.Color;

public class ProductLabelExample {
    public static void main(String[] args) {
        try {
            // Product information
            String ean13Code = "5901234123457";
            String productName = "Premium Coffee Beans";

            // Create EAN-13 barcode
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.EAN_13, ean13Code);

            // Professional label dimensions
            gen.getParameters().getBarcode().getXDimension().setMillimeters(0.33f);
            gen.getParameters().getBarcode().getBarHeight().setMillimeters(25.0f);

            // Print resolution
            gen.getParameters().setResolution(300.0f);

            // Code text styling
            gen.getParameters().getBarcode().getCodeTextParameters().setLocation(CodeLocation.BELOW);
            gen.getParameters().getBarcode().getCodeTextParameters().setAlignment(TextAlignment.CENTER);
            gen.getParameters().getBarcode().getCodeTextParameters().getFont().setFamilyName("Arial");
            gen.getParameters().getBarcode().getCodeTextParameters().getFont().getSize().setPoint(10);

            // Quiet zones
            gen.getParameters().getBarcode().getPadding().getLeft().setMillimeters(3.3f);
            gen.getParameters().getBarcode().getPadding().getRight().setMillimeters(3.3f);
            gen.getParameters().getBarcode().getPadding().getTop().setMillimeters(2.0f);
            gen.getParameters().getBarcode().getPadding().getBottom().setMillimeters(2.0f);

            // Product name caption
            gen.getParameters().getCaptionAbove().setVisible(true);
            gen.getParameters().getCaptionAbove().setText(productName);
            gen.getParameters().getCaptionAbove().setAlignment(TextAlignment.CENTER);
            gen.getParameters().getCaptionAbove().getFont().setFamilyName("Arial");
            gen.getParameters().getCaptionAbove().getFont().getSize().setPoint(12);
            gen.getParameters().getCaptionAbove().getFont().setStyle(FontStyle.BOLD);
            gen.getParameters().getCaptionAbove().getPadding().getLeft().setMillimeters(5);
            gen.getParameters().getCaptionAbove().getPadding().getRight().setMillimeters(5);
            gen.getParameters().getCaptionAbove().getPadding().getTop().setMillimeters(5);
            gen.getParameters().getCaptionAbove().getPadding().getBottom().setMillimeters(5);

            // Clean appearance
            gen.getParameters().setBackColor(Color.WHITE);
            gen.getParameters().getBarcode().setBarColor(Color.BLACK);

            // Auto-size
            gen.getParameters().setAutoSizeMode(AutoSizeMode.NEAREST);

            // Save
            gen.save("product_label.png", BarCodeImageFormat.PNG);

            System.out.println("Product label generated successfully!");
            System.out.println("Product: " + productName);
            System.out.println("EAN-13: " + ean13Code);

        } catch (Exception e) {
            System.err.println("Error generating product label: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

Best Practices Summary

1. Dimensions

  • X-Dimension: 0.30-0.50 mm for printing, 2-4 pixels for screen
  • Height: Minimum 15% of barcode width or ≥ 12.7 mm
  • Always use consistent units (millimeters for print, pixels for screen)

2. Quiet Zones

  • Minimum 10× X-Dimension on left and right
  • Essential for reliable scanning

3. Resolution

  • 300 DPI for standard printing
  • 600 DPI for high-quality printing
  • 96-150 DPI for screen display

4. Testing

Always test with actual scanner hardware before production deployment.

5. Performance

  • Reuse BarcodeGenerator instances for batch operations
  • Set parameters once, update only the code text

6. Formats

  • PNG: Best for most applications
  • SVG: Vector graphics, scalable
  • TIFF: Professional printing
  • Avoid JPEG: Compression artifacts affect scannability

Error Handling

import com.aspose.barcode.generation.*;

public class ErrorHandlingExample {
    public static void main(String[] args) {
        try {
            // Attempt to generate barcode with potentially invalid data
            BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.EAN_13, "invalid");
            gen.save("test.png", BarCodeImageFormat.PNG);

        } catch (BarCodeException ex) {
            // Handle barcode-specific errors
            System.err.println("Barcode Error: " + ex.getMessage());
            System.err.println("Check data format and encode type compatibility");

        } catch (Exception ex) {
            // Handle general errors
            System.err.println("General Error: " + ex.getMessage());
            ex.printStackTrace();
        }
    }
}