Cómo generar formatos de datos de códigos de barras en C#

Formatos de datos de salida para AEAT QR, SII y TicketBAI con IronBarcode en C

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

Integración con facturación electrónica española: Al leer códigos QR de facturas españolas, el formato de salida determina cómo se procesa el resultado. El texto decodificado (Value) de un QR de AEAT contiene la URL de verificación para las llamadas a la API de sede.agenciatributaria.gob.es. El BinaryValue de un QR de TicketBAI contiene el hash de verificación en bytes que debe almacenarse en la base de datos de conformidad del País Vasco (Bizkaia, Gipuzkoa, Araba). El PageNumber es clave para la reconciliación SII de facturas PDF multipágina.

IronBarcode proporciona múltiples formatos de salida a partir de lecturas de código de barras, incluyendo BarcodeImage, BarcodeType, BinaryValue, coordenadas, dimensiones, números de página, orientación, texto y propiedades de valor. Estos formatos permiten procesar datos de códigos de barras mediante programación para diversos casos de uso.

En lugar de limitarse a leer el código de barras e imprimir los valores en la consola, IronBarcode ofrece mucho más. Proporciona varios formatos de salida que allanan el camino para que los usuarios procesen los resultados de la lectura. Estos formatos incluyen propiedades como imagen del código de barras, tipo de código de barras, BinaryValue, coordenadas, altura, ancho, número de página, código de barras, orientación de página, text y value.

Los usuarios pueden manipular estas propiedades más a fondo dentro del programa. Exploremos cómo utilizar estas propiedades y los casos de uso en los que pueden ser útiles.

Inicio rápido: Leer el valor del código de barras y escribirlo en una línea

Este ejemplo muestra cómo leer un código de barras a partir de una imagen utilizando IronBarcode: una línea para cargar y, a continuación, imprimir inmediatamente el valor y el tipo del código de barras. Perfecto para empezar rápidamente. Para obtener ejemplos más completos, consulte la Guía de inicio rápido de BarCode.

  1. Instala IronBarcode con el Administrador de Paquetes NuGet

    PM > Install-Package BarCode
  2. Copie y ejecute este fragmento de código.

    var result = IronBarCode.BarcodeReader.Read("input.png");
    Console.WriteLine($"Value: {result[0].Value}, Type: {result[0].BarcodeType}");
  3. Despliegue para probar en su entorno real

    Comienza a usar IronBarcode en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

¿Cuáles son los formatos de salida disponibles y sus casos de uso?

BarcodeResult almacena varias propiedades útiles. Estas propiedades se enumeran a continuación:

  • BarcodeImage
  • BarcodeType
  • BinaryValue
  • Coordenadas, Height & Width
  • PageNumber
  • Barcode y PageOrientation
  • Text & Value

Cada propiedad tiene una función específica en los flujos de trabajo de procesamiento de códigos de barras. Estos formatos de datos proporcionan la flexibilidad necesaria para leer códigos de barras de diversas fuentes, ya se trate de crear un sistema de gestión de inventarios, una cadena de procesamiento de documentos o una aplicación de control de calidad.

¿Cómo puedo extraer y guardar imágenes de códigos de barras?

Una vez que IronBarcode lee una imagen, los códigos de barras encontrados en la imagen se almacenan en BarcodeResult como la propiedad BarcodeImage de tipo AnyBitmap. La propiedad BarcodeImage almacena las imágenes de los códigos de barras encontrados. Los usuarios pueden recuperar este objeto para seguir procesando la imagen o guardarla como copia permanente. Esto proporciona eficiencia y facilidad de uso al eliminar código adicional para extraer imágenes de códigos de barras de una imagen.

El siguiente fragmento de código muestra un posible caso de uso de este formato de salida:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeImage.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Read barcode from PDF file
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Create list for barcodes
List<AnyBitmap> barcodeList = new List<AnyBitmap>();

foreach (BarcodeResult barcode in result)
{
    barcodeList.Add(barcode.BarcodeImage);
}

// Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Read barcode from PDF file
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Create list for barcodes
Private barcodeList As New List(Of AnyBitmap)()

For Each barcode As BarcodeResult In result
	barcodeList.Add(barcode.BarcodeImage)
Next barcode

' Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif")
$vbLabelText   $csharpLabel

El fragmento de código anterior ilustra un caso de uso de este formato de salida. En concreto, crea una imagen TIFF de varias páginas a partir de códigos de barras detectados en un documento PDF. Primero, escaneamos o detectamos códigos de barras en el PDF de muestra. Luego, creamos una lista de AnyBitmap donde almacenamos la información de la propiedad BarcodeImage. Finalmente, usamos esta lista para generar un TIFF multipágina usando el método CreateMultiFrameTiff. Esta técnica es especialmente útil para procesar archivos GIF y TIFF multipágina.

BarcodeImage propiedad de BarcodeResult solo almacena las imágenes de los códigos de barras encontrados durante la lectura, no la imagen de entrada completa en sí misma.

¿Cómo identificar diferentes tipos de códigos de barras mediante programación?

Esta propiedad ayuda a determinar qué tipo de código de barras está presente en la imagen o documento de entrada. Sin embargo, la limitación es que el tipo de código de barras dentro de la imagen debe ser compatible y legible por IronBarcode. Para obtener más información sobre los tipos de códigos de barras compatibles con IronBarcode, consulte este artículo. Además, explore la lista completa de formatos de código de barras admitidos para garantizar la compatibilidad con sus requisitos específicos.

El siguiente fragmento de código muestra cómo recuperar los valores del código de barras y el tipo de código de barras en una imagen imprimiendo los valores en la consola.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeType.cs
using IronBarCode;
using System;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("bc3.png");

// Output barcode type to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value is " + barcode.ToString() + " and the barcode type is " + barcode.BarcodeType);
}
Imports IronBarCode
Imports System

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("bc3.png")

' Output barcode type to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value is " & barcode.ToString() & " and the barcode type is " & barcode.BarcodeType)
Next barcode
$vbLabelText   $csharpLabel

Del fragmento de código anterior, realizamos la lectura de códigos de barras llamando al método BarcodeReader.Read() en la imagen de entrada. Esto devuelve un objeto BarcodeResults que almacena todos los BarcodeResult de leer todos los códigos de barras disponibles en la imagen. A continuación, iteramos a través del objeto BarcodeResults para recuperar el BarcodeResult y obtener el código de barras value y type impresos en la consola. Este enfoque funciona a la perfección con varios tipos de códigos de barras, incluidos formatos especializados como Códigos de barras Código 39.

¿Cuándo debo utilizar la salida de valor binario?

Usando IronBarcode, los usuarios pueden recuperar la matriz de bytes del código de barras value accediendo a la propiedad BinaryValue del objeto BarcodeResult. Esto permite a los usuarios manipular el código de barras value más dentro del programa. La salida de value binario es particularmente útil cuando se trabaja con datos cifrados, archivos adjuntos codificados en códigos de barras o al integrarse con sistemas que requieren procesamiento de datos a nivel de byte.

El fragmento de código a continuación demuestra un caso de uso de recuperar el value del código de barras como datos binarios:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BinaryValue.cs
using IronBarCode;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

int i = 1;
foreach (BarcodeResult barcode in result)
{
    var binaryValue = barcode.BinaryValue;
    var barcodeType = IronBarCode.BarcodeEncoding.QRCode;

    // Create QR code
    GeneratedBarcode generatedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType);

    // Export QR code
    generatedBarcode.SaveAsPng($"qrFromBinary{i}.png");
    i++;
}
Imports IronBarCode

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private i As Integer = 1
For Each barcode As BarcodeResult In result
	Dim binaryValue = barcode.BinaryValue
	Dim barcodeType = IronBarCode.BarcodeEncoding.QRCode

	' Create QR code
	Dim generatedBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType)

	' Export QR code
	generatedBarcode.SaveAsPng($"qrFromBinary{i}.png")
	i += 1
Next barcode
$vbLabelText   $csharpLabel

Observando el fragmento de código anterior, hemos creado un programa simple que transforma múltiples códigos de barras dentro de una imagen en archivos nuevos codificados en binario por separado. Inicialmente, escaneamos los códigos de barras en la imagen PNG de muestra. Una vez que hemos detectado estos códigos de barras, iteramos a través de ellos, accedemos a la propiedad BinaryValue y la usamos para crear nuevos archivos binarios. Esta técnica es especialmente valiosa cuando se necesita leer varios códigos de barras y procesar sus datos binarios individualmente.

¿Cómo puedo acceder a la ubicación y las dimensiones de los códigos de barras?

Otra propiedad del objeto BarcodeResult a la que los usuarios pueden acceder es a las coordenadas del código de barras, incluyendo X1, Y1, y X2, Y2, así como su Height y Width dentro de un archivo de imagen o documento. Estas propiedades son útiles cuando los usuarios necesitan recuperar información sobre la ubicación y las dimensiones del código de barras. Esta información espacial es crucial para aplicaciones que requieren un posicionamiento preciso, como el procesamiento automatizado de documentos, los sistemas de control de calidad o la implementación de regiones de cultivo para optimizar el escaneado de códigos de barras.

Veamos la ubicación y las dimensiones del código de barras.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-height-width.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Linq;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

AnyBitmap bitmap = AnyBitmap.FromFile("multiple-barcodes.png");

foreach (BarcodeResult barcode in result)
{
    PointF[] barcodePoints = barcode.Points;

    float x1 = barcodePoints.Select(b => b.X).Min();
    float y1 = barcodePoints.Select(b => b.Y).Min();

    Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);

    bitmap = bitmap.Redact(rectangle, Color.Magenta);

    // Save the image
    bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png);
}
Imports System
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Linq

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private bitmap As AnyBitmap = AnyBitmap.FromFile("multiple-barcodes.png")

For Each barcode As BarcodeResult In result
	Dim barcodePoints() As PointF = barcode.Points

	Dim x1 As Single = barcodePoints.Select(Function(b) b.X).Min()
	Dim y1 As Single = barcodePoints.Select(Function(b) b.Y).Min()

'INSTANT VB TODO TASK: There is no VB equivalent to the C# 'null-forgiving operator':
'ORIGINAL LINE: Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);
	Dim rectangle As New Rectangle(CInt(Math.Truncate(x1)), CInt(Math.Truncate(y1)), CInt(barcode.Width), CInt(barcode.Height))

	bitmap = bitmap.Redact(rectangle, Color.Magenta)

	' Save the image
	bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png)
Next barcode
$vbLabelText   $csharpLabel
Three barcode samples (A, B, C) showing different encoded data with similar visual patterns
Three redacted content blocks with illegible text fragments

El fragmento de código anterior elimina varios códigos de barras de un archivo de imagen. Para lograrlo, utilizamos una combinación de dos bibliotecas, IronBarcode e IronDrawing. Para obtener el objeto BarcodeResult y extraer las propiedades de él, primero leemos los códigos de barras disponibles en un archivo de imagen usando el método BarcodeReader.Read(). Conjuntamente, el archivo de imagen de entrada necesita ser convertido en un objeto AnyBitmap para aplicar el método de redacción a la imagen. Una vez que tenemos el objeto BarcodeResults, podemos aplicar un bucle e iterar a través de él para obtener el X1, Y1, Width, y Height de cada código de barras disponible en la imagen y utilizarlos en las propiedades CropRectangle del método AnyBitmap.Redact().

¿Por qué es importante el número de página en los documentos de varias páginas?

Los usuarios pueden recuperar el número de página en el que se encontró el código de barras. Se trata de una función útil para los usuarios que utilizan un documento de varias páginas que contiene varios códigos de barras y necesitan conocer la ubicación de los códigos de barras que se encuentran en el documento para su posterior procesamiento. Esta funcionalidad es esencial a la hora de leer códigos de barras de documentos PDF o procesar documentos por lotes en aplicaciones empresariales.

Mira el fragmento de código siguiente:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-page-number.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page number to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value " + barcode.ToString() + " is found on page number " + barcode.PageNumber);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page number to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value " & barcode.ToString() & " is found on page number " & barcode.PageNumber)
Next barcode
$vbLabelText   $csharpLabel

El fragmento de código anterior demuestra un caso de uso donde los usuarios necesitan que el programa devuelva el value de códigos de barras encontrados en un documento PDF multipágina y sus respectivos números de página. El código utiliza el método BarcodeReader.ReadPdf() para leer los códigos de barras dentro de un documento PDF multipágina, que devuelve un objeto BarcodeResults almacenando cada BarcodeResult encontrado en el documento. Aplicamos un bucle e iteramos a través de cada elemento en el objeto para recuperar el value de los códigos de barras y el número de página donde se encontraron los códigos de barras. Aparte de este caso de uso, los usuarios pueden utilizar esta propiedad para depurar si se han leído todos los códigos de barras de un documento.

Por favor notaEl valor devuelto por esta propiedad está basado en 1 , lo que significa que la primera página siempre es uno y no cero.

¿Cómo detectar la rotación del código de barras y la orientación de la página?

Con IronBarcode, los usuarios pueden obtener información sobre la orientación del código de barras y la orientación de la página en la que se encontró el código de barras. Para extraer estas dos piezas de información, acceda a las propiedades Rotation y PageOrientation del objeto BarcodeResult. Rotation devuelve un entero que representa el ángulo de rotación del código de barras encontrado. Esta función funciona junto con las capacidades de corrección de la orientación de la imagen para garantizar una lectura precisa de los códigos de barras independientemente del ángulo de escaneado.

Mira el fragmento de código siguiente:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-orientation.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page orientation and rotation to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.PageOrientation);
    Console.WriteLine(barcode.Rotation);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page orientation and rotation to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.PageOrientation)
	Console.WriteLine(barcode.Rotation)
Next barcode
$vbLabelText   $csharpLabel

El fragmento de código anterior se ejecutó con la entrada PDF de muestra adjunta para demostrar que los usuarios pueden recuperar la orientación de la página y la rotación del código de barras obteniendo el pageOrientation y el código de barras rotation respectivamente. Esta característica es útil principalmente para propósitos de depuración.

Por favor notaIronBarcode solo puede leer códigos de barras con rotaciones de BarcodeResult.PageOrientation, BarcodeResult.Rotation, 0, 90, 180, y 270 grados. IronBarcode no devolverá ningún valor si el código de barras tiene un valor de rotación diferente a los mencionados. PageOrientation devuelve un objeto PageOrientation, que consiste en Portrait o Landscape.

¿Cuál es la diferencia entre las propiedades de texto y de valor?

Por supuesto, la propiedad principal que los usuarios querrán recuperar al usar IronBarcode es su value y text. Estas dos propiedades a menudo se usan indistintamente y devuelven el mismo value. Aparte de eso, los usuarios pueden usar el método BarcodeResult.ToString() para lograr el mismo resultado. Al trabajar con aplicaciones especializadas o exportar datos de códigos de barras como flujos, estas propiedades proporcionan formas flexibles de acceder al contenido del código de barras en su formato preferido.

El fragmento de código a continuación demuestra:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-text-value.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("barcodestamped3.pdf");

// Output text value to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.Text);
    Console.WriteLine(barcode.ToString());
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("barcodestamped3.pdf")

' Output text value to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.Text)
	Console.WriteLine(barcode.ToString())
Next barcode
$vbLabelText   $csharpLabel

A partir del fragmento de código anterior, los usuarios sólo necesitan unas pocas líneas de código para leer códigos de barras en una imagen utilizando IronBarcode. Después de iterar a través del BarcodeResults devuelto por el método BarcodeReader.Read(), mostramos en la consola el resultado de obtener las propiedades Value y Text, así como llamando al método BarcodeResult.ToString() para demostrar que todos estos devuelven el mismo value.

En pocas palabras, IronBarcode es una API perfecta para que los usuarios realicen múltiples operaciones relacionadas con los códigos de barras, no limitadas a escribir y decodificar códigos de barras. Con varios formatos de datos de salida compatibles, los usuarios pueden hacer mucho más con el objeto BarcodeResult devuelto por IronBarcode.

Formatos de salida para integraciones fiscales españolas

Las propiedades de BarcodeResult tienen casos de uso directos en los sistemas de facturación electrónica de España:

Extracción de URL de AEAT para verificación VeriFactu: La propiedad Value (o Text) del QR decodificado contiene la URL completa de sede.agenciatributaria.gob.es. Este string se pasa directamente al cliente HTTP para llamar al endpoint de verificación de la AEAT y confirmar la validez de la factura VeriFactu:

var results = BarcodeReader.Read("factura-espanola.pdf");
foreach (var r in results)
{
    if (r.Value.Contains("sede.agenciatributaria.gob.es"))
    {
        // Llamar al endpoint de verificación AEAT con la URL decodificada
        await httpClient.GetAsync(r.Value);
    }
}
var results = BarcodeReader.Read("factura-espanola.pdf");
foreach (var r in results)
{
    if (r.Value.Contains("sede.agenciatributaria.gob.es"))
    {
        // Llamar al endpoint de verificación AEAT con la URL decodificada
        await httpClient.GetAsync(r.Value);
    }
}
Imports System.Threading.Tasks

Dim results = BarcodeReader.Read("factura-espanola.pdf")
For Each r In results
    If r.Value.Contains("sede.agenciatributaria.gob.es") Then
        ' Llamar al endpoint de verificación AEAT con la URL decodificada
        Await httpClient.GetAsync(r.Value)
    End If
Next
$vbLabelText   $csharpLabel

Almacenamiento del hash TicketBAI como bytes: Para los registros de conformidad de las Diputaciones Forales de Bizkaia, Gipuzkoa y Araba, el hash de verificación del QR TicketBAI debe almacenarse como bytes en la base de datos. Use BinaryValue para obtener los bytes directamente sin conversión:

byte[] hashBytes = results[0].BinaryValue;
// Guardar en base de datos de conformidad TicketBAI
await complianceDb.SaveTicketBaiHashAsync(hashBytes, territorioHistorico);
byte[] hashBytes = results[0].BinaryValue;
// Guardar en base de datos de conformidad TicketBAI
await complianceDb.SaveTicketBaiHashAsync(hashBytes, territorioHistorico);
Dim hashBytes As Byte() = results(0).BinaryValue
' Guardar en base de datos de conformidad TicketBAI
Await complianceDb.SaveTicketBaiHashAsync(hashBytes, territorioHistorico)
$vbLabelText   $csharpLabel

PageNumber para reconciliación SII: Al procesar facturas PDF multipágina en lotes del SII, PageNumber identifica en qué página se encontró el código QR, permitiendo indexar los resultados por posición del documento para la comunicación a la AEAT.

Coordenadas para extracción selectiva del QR de AEAT: El Real Decreto 1007/2023 establece que el QR de AEAT debe aparecer en la zona inferior derecha de la factura. Usando X1, Y1, X2, Y2 puede verificar programáticamente que el QR cumple con el requisito de posicionamiento visual antes de validar la factura.

Para el procesamiento de SILICIE, la propiedad BarcodeType verifica que el código escaneado es efectivamente un DataMatrix (código requerido por el Ministerio de Sanidad) y no un código de barras diferente en la etiqueta del medicamento.

Preguntas Frecuentes

¿Qué formatos de salida admite la lectura de códigos de barras en C#?

IronBarcode proporciona múltiples formatos de salida, incluyendo BarcodeImage, BarcodeType, BinaryValue, coordenadas, dimensiones, números de página, orientación, texto y propiedades de valor. Estos formatos permiten el procesamiento integral de datos de códigos de barras para diversas aplicaciones .NET.

¿Cómo puedo leer el valor de un código de barras en una sola línea de código?

Con IronBarcode, puede leer un código de barras en una línea utilizando: var result = IronBarCode.BarcodeReader.Read('input.png'); Esto le da acceso inmediato al valor y tipo del código de barras a través de result[0].Value y result[0].BarcodeType.

¿Qué propiedades están disponibles en BarcodeResult?

El objeto BarcodeResult de IronBarcode contiene propiedades como BarcodeImage, BarcodeType, BinaryValue, Coordinates, Height & Width, PageNumber, Barcode, PageOrientation, Text y Value, que proporcionan datos completos para los flujos de trabajo de procesamiento de códigos de barras.

¿Puedo extraer y guardar imágenes de códigos de barras después de la lectura?

Sí, IronBarcode almacena los códigos de barras encontrados como objetos AnyBitmap en la propiedad BarcodeImage. Puede recuperar este objeto para seguir procesando la imagen o guardarla como copia permanente, eliminando la necesidad de código adicional para extraer imágenes de códigos de barras.

¿Cómo puedo acceder a las coordenadas y dimensiones de los códigos de barras?

IronBarcode proporciona datos de coordenadas que incluyen las posiciones x e y, así como las dimensiones de altura y anchura de cada código de barras detectado. Estas propiedades son accesibles a través del objeto BarcodeResult para un seguimiento preciso de la ubicación del código de barras.

¿Cuál es la diferencia entre las propiedades Text y Value?

En IronBarcode, las propiedades Text y Value contienen los datos del código de barras. Estas propiedades forman parte del objeto BarcodeResult y pueden utilizarse indistintamente para recuperar la información descodificada del código de barras.

¿Puedo determinar en qué página se ha encontrado un código de barras?

Sí, IronBarcode incluye una propiedad PageNumber en el objeto BarcodeResult, que permite identificar exactamente qué página de un documento de varias páginas o PDF contiene cada código de barras detectado.

¿Cómo puedo identificar el tipo de código de barras detectado?

La propiedad BarcodeType del objeto BarcodeResult de IronBarcode identifica el formato específico de código de barras detectado (como Código QR, Código 128, etc.), permitiendo el procesamiento específico del formato en su aplicación.

¿Cómo extraigo la URL de AEAT de un QR de factura española para llamar al endpoint de verificación VeriFactu?

Use la propiedad Value (o Text) del BarcodeResult. Al leer el QR de una factura española con BarcodeReader.Read(), el campo Value contendrá la URL completa de sede.agenciatributaria.gob.es con los parámetros nif, numserie, fecha, importe y huella. Pase este string directamente al cliente HTTP para verificar la factura con la AEAT.

¿Cómo almaceno el hash de verificación de TicketBAI como bytes para los registros de conformidad del País Vasco?

Use la propiedad BinaryValue del BarcodeResult en lugar de Value. BinaryValue devuelve el array de bytes brutos del contenido del QR TicketBAI, que contiene el hash de verificación en formato binario requerido para los registros de las Diputaciones Forales de Bizkaia, Gipuzkoa y Araba.

Hairil Hasyimi Bin Omar
Ingeniero de Software
Como todos los grandes ingenieros, Hairil es un ávido aprendiz. Está refinando su conocimiento de C#, Python y Java, usando ese conocimiento para agregar valor a los miembros del equipo en Iron Software. Hairil se unió al equipo de Iron Software desde la Universiti Teknologi MARA en Malasia, donde se ...
Leer más
¿Listo para empezar?
Nuget Descargas 2,240,258 | Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package BarCode
ejecuta una muestra observa cómo tu cadena se convierte en un código de barras.