Skip to footer content
USING IRONBARCODE

How to Read Multiple Barcodes with IronBarcode: Live Demo Recap

IronBarcode allows developers to create and interpret various barcode formats with just a few lines of C# code. It supports everything from simple QR codes to complex multi-barcode document processing across desktop, web, and mobile platforms.

In a recent live session, the Iron Software team demonstrated how to generate and read multiple barcode formats using IronBarcode. Led by Sales Engineer Shadman Majid with Craig Beaumont (Sales Lead), the session covered everything from simple barcode generation to advanced reading use cases, showing how fast and flexible the IronBarcode library is for real-world applications.

IronBarcode webinar demo showing barcode generation interface

What Did the Webinar Cover About Barcode Generation?

Shadman began by explaining how easy it is to generate barcodes with just a few lines of C# code using IronBarcode. The tool supports a wide range of barcode formats and makes it simple to customize output as PNG or PDF. This is ideal for industries needing fast and reliable barcode generation, from manufacturing to logistics.

The IronBarcode library provides developers with a complete API that handles the complex mathematics and rendering required for barcode generation. Whether you need to create simple 1D barcodes like Code 128 and UPC-A, or more complex 2D formats like QR codes and Data Matrix, the library abstracts away the technical details while giving you full control over appearance and encoding options.

// Example C# code to generate various barcode formats using IronBarcode

using IronBarCode;

// Generate a QR code with custom text
BarcodeWriter.CreateBarcode("Hello World!", BarcodeEncoding.QRCode)
    .SaveAsPng("HelloWorldQRCode.png");

// Generate a Code 128 barcode with product information
BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeEncoding.Code128)
    .ResizeTo(400, 100)  // Custom dimensions in pixels
    .AddBarcodeValueTextBelowBarcode()  // Add human-readable text
    .SaveAsPng("ProductBarcode.png");

// Generate a Data Matrix barcode for compact data storage
BarcodeWriter.CreateBarcode("Compact data for small labels", BarcodeEncoding.DataMatrix)
    .SaveAsPdf("DataMatrixLabel.pdf");
// Example C# code to generate various barcode formats using IronBarcode

using IronBarCode;

// Generate a QR code with custom text
BarcodeWriter.CreateBarcode("Hello World!", BarcodeEncoding.QRCode)
    .SaveAsPng("HelloWorldQRCode.png");

// Generate a Code 128 barcode with product information
BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeEncoding.Code128)
    .ResizeTo(400, 100)  // Custom dimensions in pixels
    .AddBarcodeValueTextBelowBarcode()  // Add human-readable text
    .SaveAsPng("ProductBarcode.png");

// Generate a Data Matrix barcode for compact data storage
BarcodeWriter.CreateBarcode("Compact data for small labels", BarcodeEncoding.DataMatrix)
    .SaveAsPdf("DataMatrixLabel.pdf");
$vbLabelText   $csharpLabel

The above code snippets demonstrate how to generate different barcode formats with customization options. The library automatically handles encoding rules, error correction, and rendering optimization for each format. For businesses implementing barcode-based inventory systems, this flexibility means you can adapt to any labeling requirement without switching tools.


Live demonstration of barcode generation features in IronBarcode

How Do You Read Multiple Barcode Formats with IronBarcode?

After the generation demo, Craig took over to demonstrate the barcode reading capabilities of IronBarcode.

These features make IronBarcode ideal for complex automation workflows, especially where documents may contain more than one barcode type or when handling bulk data. The library's advanced image processing capabilities can detect and decode barcodes even from imperfect sources — including skewed scans, low-resolution photos, or partially damaged labels. This reliability is crucial for real-world applications where perfect conditions cannot be guaranteed.

// Complete example of reading barcodes with advanced options

using IronBarCode;
using System;
using System.Linq;

// Read all barcodes in a given image file
var results = BarcodeReader.Read(@"exampleImageWithBarcodes.png");

// Process each barcode read with detailed information
foreach (var result in results)
{
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Format: {result.BarcodeType}");
    Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
    Console.WriteLine($"Dimensions: {result.Width}x{result.Height}");
    Console.WriteLine("---");
}

// Read with specific options for challenging scenarios
var advancedResults = BarcodeReader.ReadAsync(
    @"lowQualityDocument.pdf",
    new BarcodeReaderOptions
    {
        Speed = ReadingSpeed.Balanced,  // Balance between speed and accuracy
        ExpectMultipleBarcodes = true,   // Improve for multiple barcode detection
        ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,  // Filter specific types
        CropArea = new System.Drawing.Rectangle(100, 100, 500, 500)  // Focus on specific region
    }
).Result;

// Handle results with error checking
if (advancedResults.Any())
{
    Console.WriteLine($"Found {advancedResults.Count()} barcodes in the document");
}
// Complete example of reading barcodes with advanced options

using IronBarCode;
using System;
using System.Linq;

// Read all barcodes in a given image file
var results = BarcodeReader.Read(@"exampleImageWithBarcodes.png");

// Process each barcode read with detailed information
foreach (var result in results)
{
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Format: {result.BarcodeType}");
    Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
    Console.WriteLine($"Dimensions: {result.Width}x{result.Height}");
    Console.WriteLine("---");
}

// Read with specific options for challenging scenarios
var advancedResults = BarcodeReader.ReadAsync(
    @"lowQualityDocument.pdf",
    new BarcodeReaderOptions
    {
        Speed = ReadingSpeed.Balanced,  // Balance between speed and accuracy
        ExpectMultipleBarcodes = true,   // Improve for multiple barcode detection
        ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,  // Filter specific types
        CropArea = new System.Drawing.Rectangle(100, 100, 500, 500)  // Focus on specific region
    }
).Result;

// Handle results with error checking
if (advancedResults.Any())
{
    Console.WriteLine($"Found {advancedResults.Count()} barcodes in the document");
}
$vbLabelText   $csharpLabel

The code example shows how to read barcodes with both basic and advanced configurations. The BarcodeReaderOptions class provides fine-grained control over the reading process, allowing developers to improve for speed, accuracy, or specific use cases. This level of control is particularly valuable when processing thousands of documents in batch operations or when working with challenging source materials.


What Are the Common Use Cases Across Industries?

Craig also shared practical use cases where IronBarcode is already making an impact:

  • Inventory & Asset Management – Track stock levels and automate warehouse operations.

  • Document Processing – Extract barcode data from PDFs and scanned files automatically.

  • Logistics & Supply Chain – Enable real-time tracking throughout the shipping process.

  • Healthcare – Ensure patient safety through accurate identification and medication tracking.

  • Payments & Ticketing – Process QR codes for entry validation and digital transactions.

  • Manufacturing – Monitor production lines and maintain quality control standards.

  • Point-of-Sale (POS) – Speed checkout with instant product barcode scanning.

  • Security & ID Verification – Authenticate users through barcode-based credentials.

How Does IronBarcode Handle Single and Multiple Barcode Reads?

Shadman returned to demonstrate how IronBarcode handles both single and multiple barcode reads in real time.

Technical demonstration showing barcode reading coordinates and metadata extraction

The library's intelligent detection algorithms can identify and process multiple barcodes within a single image or document page, even when they use different encoding formats. This capability is essential for applications like shipping manifests that may contain tracking barcodes, product codes, and routing information all on the same label. The multi-threaded processing engine ensures that even large documents with numerous barcodes are processed efficiently.

What Key Information Does IronBarcode Extract?

  1. Single Barcode Reading – Optimized for fastest read times
  2. Barcode Value – Decoded data with UTF-8 support
  3. Format Detection – Identifies barcode type automatically
  4. Precise Coordinates – Pixel-level x, y position data
  5. Complete Metadata – Height, width, and encoding details

Beyond basic extraction, IronBarcode provides confidence scores for each read, allowing applications to implement quality thresholds appropriate to their use case. For mission-critical applications like pharmaceutical labeling or financial document processing, this ensures that only high-confidence reads are accepted, while less critical applications can be configured for maximum throughput.


Why Should You Use IronBarcode for Your Projects?

With IronBarcode, developers can easily generate and read barcodes across a variety of formats and platforms, including desktop, web, and now even mobile via .NET MAUI. Whether you're building a warehouse tracking system or a retail checkout app, IronBarcode provides the flexibility and performance needed to get the job done fast.

The library's cross-platform support means you can deploy the same barcode logic across Windows, Linux, macOS, iOS, and Android without modification. This write-once, run-anywhere approach significantly reduces development time and maintenance costs. Combined with complete documentation and responsive support, IronBarcode helps teams deliver barcode functionality faster than building from scratch or integrating multiple specialized libraries.

For businesses evaluating barcode solutions, IronBarcode offers several key advantages: no runtime fees for deployment, thread-safe operations for web applications, and compatibility with existing .NET codebases. The library handles edge cases that often trip up simpler solutions, such as reading barcodes from faxed documents, processing batch scans with mixed orientations, or generating barcodes with custom styling to match brand guidelines.

Ready to try it? Get a 30-day Free Trial Now.

Frequently Asked Questions

How can I generate barcodes in C#?

You can generate barcodes in C# using IronBarcode. By using the BarcodeWriter.CreateBarcode method, you can create various barcode formats and save them as images like PNG or PDF.

What are the steps to read multiple barcodes from an image in C#?

To read multiple barcodes from an image in C#, use IronBarcode's BarcodeReader.Read method. This allows you to process images containing multiple barcode formats and extract their values and types efficiently.

What industries benefit from using barcode libraries?

Industries such as manufacturing, logistics, healthcare, and retail benefit from using barcode libraries like IronBarcode. They enable efficient barcode generation and reading for tasks like inventory management, document processing, and POS systems.

Can IronBarcode handle real-time barcode scanning?

Yes, IronBarcode is capable of handling real-time barcode scanning. It supports reading single and multiple barcodes in real-time scenarios, making it suitable for applications requiring immediate barcode processing.

What platforms can IronBarcode be used on?

IronBarcode can be used on desktop, web, and mobile platforms. It supports cross-platform development using frameworks like .NET MAUI, allowing developers to integrate barcode functionalities into diverse applications.

Is there a free trial available for evaluating IronBarcode?

Yes, IronBarcode offers a 30-day free trial. This allows developers to explore its features and assess its performance before making a purchase decision.

How does IronBarcode support automation workflows?

IronBarcode supports automation workflows by enabling the reading of multiple barcode formats from documents and images. This functionality is essential for automating processes in industries like logistics and document management.

What are the key features of IronBarcode demonstrated in the live session?

In the live session, key features demonstrated included barcode generation with minimal code, reading multiple barcode formats, and the ability to customize barcode outputs for various industry applications.

Jordi Bardia
Software Engineer
Jordi is most proficient in Python, C# and C++, when he isn’t leveraging his skills at Iron Software; he’s game programming. Sharing responsibilities for product testing, product development and research, Jordi adds immense value to continual product improvement. The varied experience keeps him challenged and engaged, and he ...
Read More