Cómo Generar Imágenes de Código de Barras en C#

How to Generate Barcode Images in C# .NET Applications

This article was translated from English: Does it need improvement?
Translated
View the article in English

Need to quickly generate professional barcode images in your .NET applications? This tutorial shows you exactly how to create, customize, and export barcodes using IronBarcode - from simple one-line implementations to advanced styling techniques that give you complete control over your barcode appearance.

Quickstart: Create and Save a Barcode Image Instantly

With IronBarcode you can generate and export a barcode image in just one simple call. Use the CreateBarcode method with your text, choose the format and size, then call SaveAsPng — no complex setup needed.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    IronBarCode.BarcodeWriter.CreateBarcode("Hello123", BarcodeWriterEncoding.Code128, 200, 100).SaveAsPng("barcode.png");
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer

How Do I Install a Barcode Generator Library in C#?

Installing IronBarcode takes just seconds using the NuGet Package Manager. You can install it directly through the Package Manager Console or download the DLL manually.

Install-Package BarCode
IronBarcode simplifies barcode generation in .NET applications with powerful features and easy-to-use APIs IronBarcode provides comprehensive barcode generation capabilities for .NET developers

How Can I Generate a Simple Barcode Using C#?

Creating your first barcode requires just two lines of code. The example below demonstrates generating a standard Code128 barcode and saving it as an image file.

using IronBarCode;

// Create a barcode with your desired content and encoding type
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
myBarcode.SaveAsPng("myBarcode.png");

// Optional: Open the generated image in your default viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo("myBarcode.png") { UseShellExecute = true });
using IronBarCode;

// Create a barcode with your desired content and encoding type
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
myBarcode.SaveAsPng("myBarcode.png");

// Optional: Open the generated image in your default viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo("myBarcode.png") { UseShellExecute = true });
Imports IronBarCode

' Create a barcode with your desired content and encoding type
Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Code128)

' Save the barcode as a PNG image file
myBarcode.SaveAsPng("myBarcode.png")

' Optional: Open the generated image in your default viewer
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo("myBarcode.png") With {.UseShellExecute = True})
$vbLabelText   $csharpLabel

The BarcodeWriter.CreateBarcode() method is your entry point for barcode generation. It accepts two parameters: the data you want to encode and the barcode format from the BarcodeWriterEncoding enum. IronBarcode supports all major barcode formats including Code128, Code39, EAN13, UPC-A, PDF417, DataMatrix, and QR codes.

Once generated, the GeneratedBarcode object provides multiple export options. You can save it as various image formats (PNG, JPEG, GIF, TIFF), export to PDF, or even retrieve it as a System.Drawing.Bitmap for further processing in your application.

Example of a Code128 barcode generated using IronBarcode in C# A Code128 barcode generated with IronBarcode displaying a URL

Can I Customize the Appearance of Generated Barcodes?

IronBarcode offers extensive customization options that go far beyond basic barcode generation. You can add annotations, adjust colors, set margins, and control every aspect of your barcode's appearance.

using IronBarCode;
using IronSoftware.Drawing;

// Create a QR code with advanced styling options
GeneratedBarcode myBarCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeWriterEncoding.QRCode
);

// Add descriptive text above the barcode
myBarCode.AddAnnotationTextAboveBarcode("Product URL:");

// Display the encoded value below the barcode
myBarCode.AddBarcodeValueTextBelowBarcode();

// Set consistent margins around the barcode
myBarCode.SetMargins(100);

// Customize the barcode color (purple in this example)
myBarCode.ChangeBarCodeColor(Color.Purple);

// Export as an HTML file for web integration
myBarCode.SaveAsHtmlFile("MyBarCode.html");
using IronBarCode;
using IronSoftware.Drawing;

// Create a QR code with advanced styling options
GeneratedBarcode myBarCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode", 
    BarcodeWriterEncoding.QRCode
);

// Add descriptive text above the barcode
myBarCode.AddAnnotationTextAboveBarcode("Product URL:");

// Display the encoded value below the barcode
myBarCode.AddBarcodeValueTextBelowBarcode();

// Set consistent margins around the barcode
myBarCode.SetMargins(100);

// Customize the barcode color (purple in this example)
myBarCode.ChangeBarCodeColor(Color.Purple);

// Export as an HTML file for web integration
myBarCode.SaveAsHtmlFile("MyBarCode.html");
Imports IronBarCode
Imports IronSoftware.Drawing

' Create a QR code with advanced styling options
Private myBarCode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.QRCode)

' Add descriptive text above the barcode
myBarCode.AddAnnotationTextAboveBarcode("Product URL:")

' Display the encoded value below the barcode
myBarCode.AddBarcodeValueTextBelowBarcode()

' Set consistent margins around the barcode
myBarCode.SetMargins(100)

' Customize the barcode color (purple in this example)
myBarCode.ChangeBarCodeColor(Color.Purple)

' Export as an HTML file for web integration
myBarCode.SaveAsHtmlFile("MyBarCode.html")
$vbLabelText   $csharpLabel

The GeneratedBarcode class provides a rich set of methods for customization:

  • Annotations: Use AddAnnotationTextAboveBarcode() and AddAnnotationTextBelowBarcode() to add custom labels or instructions around your barcode
  • Value Display: The AddBarcodeValueTextBelowBarcode() method automatically displays the encoded data in human-readable format
  • Spacing: Control whitespace with SetMargins() to ensure proper scanning and visual appeal
  • Colors: Change foreground and background colors using ChangeBarCodeColor() and ChangeBackgroundColor()
  • Export Options: Save as image files, PDFs, or self-contained HTML documents
Customized purple QR code with annotations generated using IronBarcode styling features A styled QR code featuring custom color and annotation text

For detailed customization options, explore the GeneratedBarcode class documentation which covers all available styling methods and properties.

How Do I Create and Export a Barcode in One Line of Code?

IronBarcode implements a fluent API design pattern that enables method chaining for more concise and readable code. This approach is particularly useful when applying multiple transformations to your barcode.

using IronBarCode;
using IronSoftware.Drawing;

// Generate, style, and convert a barcode in a single statement
string value = "https://ironsoftware.com/csharp/barcode";

// Create PDF417 barcode with chained operations
AnyBitmap barcodeBitmap = BarcodeWriter
    .CreateBarcode(value, BarcodeWriterEncoding.PDF417)  // Create PDF417 barcode
    .ResizeTo(300, 200)                                  // Set specific dimensions
    .SetMargins(10)                                      // Add 10px margins
    .ToBitmap();                                         // Convert to bitmap

// Convert to System.Drawing.Bitmap for legacy compatibility
System.Drawing.Bitmap legacyBitmap = barcodeBitmap;
using IronBarCode;
using IronSoftware.Drawing;

// Generate, style, and convert a barcode in a single statement
string value = "https://ironsoftware.com/csharp/barcode";

// Create PDF417 barcode with chained operations
AnyBitmap barcodeBitmap = BarcodeWriter
    .CreateBarcode(value, BarcodeWriterEncoding.PDF417)  // Create PDF417 barcode
    .ResizeTo(300, 200)                                  // Set specific dimensions
    .SetMargins(10)                                      // Add 10px margins
    .ToBitmap();                                         // Convert to bitmap

// Convert to System.Drawing.Bitmap for legacy compatibility
System.Drawing.Bitmap legacyBitmap = barcodeBitmap;
Imports IronBarCode
Imports IronSoftware.Drawing

' Generate, style, and convert a barcode in a single statement
Private value As String = "https://ironsoftware.com/csharp/barcode"

' Create PDF417 barcode with chained operations
Private barcodeBitmap As AnyBitmap = BarcodeWriter.CreateBarcode(value, BarcodeWriterEncoding.PDF417).ResizeTo(300, 200).SetMargins(10).ToBitmap() ' Convert to bitmap

' Convert to System.Drawing.Bitmap for legacy compatibility
Private legacyBitmap As System.Drawing.Bitmap = barcodeBitmap
$vbLabelText   $csharpLabel

The fluent API pattern offers several advantages:

  • Readability: Chain operations in a logical sequence that reads like natural language
  • Efficiency: Reduce variable declarations and intermediate steps
  • Flexibility: Easily add or remove operations without restructuring your code

Common fluent operations include:

  • ResizeTo(): Control exact barcode dimensions
  • SetMargins(): Add consistent spacing
  • ChangeBarCodeColor(): Modify appearance
  • AddAnnotationTextAboveBarcode(): Include descriptive text
  • ToBitmap(), SaveAsPng(), SaveAsPdf(): Export in various formats
PDF417 barcode created using IronBarcode's fluent API with custom dimensions A PDF417 barcode generated using fluent method chaining

What Barcode Formats Are Supported by IronBarcode?

IronBarcode supports comprehensive barcode format generation through the BarcodeWriterEncoding enum. Supported formats include:

1D Barcodes: Code128, Code39, Code93, Codabar, ITF, MSI, Plessey, UPCA, UPCE, EAN8, EAN13 2D Barcodes: QRCode, DataMatrix, PDF417, Aztec, MaxiCode Specialized Formats: IntelligentMail, DataBar, DataBarExpanded, and various GS1 standards

Each format has specific characteristics and use cases. For example, QR codes excel at storing URLs and large amounts of data, while EAN13 is standard for retail products. Learn more about choosing the right barcode format for your application.

How Can I Verify My Generated Barcode Is Readable?

Quality assurance is critical for barcode implementation. IronBarcode includes built-in verification to ensure your generated barcodes remain scannable:

// Generate and verify a barcode
GeneratedBarcode myBarcode = BarcodeWriter
    .CreateBarcode("TEST123", BarcodeWriterEncoding.Code128)
    .ResizeTo(200, 100)
    .ChangeBarCodeColor(Color.DarkBlue);

// Verify the barcode is still readable after modifications
bool isReadable = myBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
// Generate and verify a barcode
GeneratedBarcode myBarcode = BarcodeWriter
    .CreateBarcode("TEST123", BarcodeWriterEncoding.Code128)
    .ResizeTo(200, 100)
    .ChangeBarCodeColor(Color.DarkBlue);

// Verify the barcode is still readable after modifications
bool isReadable = myBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
' Generate and verify a barcode
Dim myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("TEST123", BarcodeWriterEncoding.Code128).ResizeTo(200, 100).ChangeBarCodeColor(Color.DarkBlue)

' Verify the barcode is still readable after modifications
Dim isReadable As Boolean = myBarcode.Verify()
Console.WriteLine($"Barcode verification: {(If(isReadable, "PASS", "FAIL"))}")
$vbLabelText   $csharpLabel

The Verify() method checks whether your barcode remains machine-readable after applying transformations like resizing or recoloring. This is especially important when using non-standard colors or very small sizes.

Where Can I Find More Barcode Generation Examples?

To expand your barcode generation capabilities, explore these additional resources:

Source Code and Examples

Download the complete source code for this tutorial:

Advanced Topics

API Documentation

Ready to Generate Professional Barcodes in Your Application?

IronBarcode makes barcode generation straightforward while providing the flexibility needed for professional applications. Whether you need simple product codes or complex 2D barcodes with custom styling, IronBarcode handles it all with minimal code.

Download IronBarcode today and start generating barcodes in minutes. Need help choosing the right license? Check our licensing options or request a free trial key to test IronBarcode in your production environment.

Preguntas Frecuentes

¿Cómo puedo crear una imagen de código de barras en C#?

Para crear una imagen de código de barras en C#, puedes usar el método BarcodeWriter.CreateBarcode() de IronBarcode. Esto te permite especificar los datos y el formato del código de barras, y luego guardar la imagen en formatos como PNG o JPEG usando métodos como SaveAsPng().

¿Cuáles son los pasos para instalar IronBarcode en un proyecto .NET?

Puedes instalar IronBarcode en tu proyecto .NET usando el Gestor de Paquetes NuGet en Visual Studio. Alternativamente, puedes descargar el DLL desde el sitio web de IronBarcode y añadirlo a las referencias de tu proyecto.

¿Cómo puedo exportar un código de barras como PDF en C#?

IronBarcode permite exportar códigos de barras como PDF usando el método SaveAsPdf() de la clase GeneratedBarcode, ofreciendo una forma sencilla de guardar tus códigos de barras en formato PDF.

¿Qué opciones de personalización están disponibles para los códigos de barras en C#?

IronBarcode proporciona extensas opciones de personalización, como cambiar los colores del código de barras con ChangeBarCodeColor(), añadir anotaciones de texto usando AddAnnotationTextAboveBarcode() y establecer márgenes con SetMargins().

¿Cómo puedo crear y estilizar rápidamente un código de barras en una línea de código?

Usando la API Fluida de IronBarcode, puedes crear y estilizar un código de barras en una línea con la encadenación de métodos: BarcodeWriter.CreateBarcode(data, encoding).ResizeTo(300, 200).SetMargins(10).SaveAsPng(path).

¿Cómo aseguro que mi código de barras sea escaneable después de las modificaciones?

Para verificar la escaneabilidad de un código de barras después de estilizar o redimensionar, utiliza el método Verify() en el objeto GeneratedBarcode para comprobar su legibilidad por máquina.

¿Puedo generar códigos QR con logotipos en C#?

Sí, IronBarcode soporta la generación de códigos QR con logotipos incrustados usando la clase QRCodeWriter, que incluye características para la inserción de logotipos y niveles mejorados de corrección de errores.

¿Cuál es el proceso para generar múltiples códigos de barras eficientemente en C#?

Puedes generar múltiples códigos de barras eficientemente en C# usando IronBarcode, que soporta el procesamiento por lotes y permite el uso de bucles o procesamiento en paralelo para manejar la generación de códigos de barras de alto volumen.

¿Qué formatos de archivo puedo usar para exportar códigos de barras en C#?

IronBarcode soporta la exportación de códigos de barras en varios formatos, incluyendo PNG, JPEG, GIF, TIFF, BMP, PDF y HTML, proporcionando flexibilidad para diferentes necesidades aplicativas.

¿Cómo puedo añadir texto legible por humanos debajo de un código de barras en C#?

Para añadir texto legible por humanos debajo de un código de barras en C#, usa el método AddBarcodeValueTextBelowBarcode(), que muestra automáticamente el valor codificado en un formato de texto debajo de la imagen del código de barras.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología en Iron Software y un ingeniero visionario que lidera la tecnología PDF en C#. Como el desarrollador original detrás de la base de código central de Iron Software, ha moldeado la arquitectura de productos de la compañía desde ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,935,276 | Versión: 2025.11 recién lanzado