Crear código de barras en documentos de Word usando C#

Los códigos de barras son imágenes en forma de líneas paralelas, puntos o rectángulos con datos/información codificados. Los profesionales de la industria incorporan y acceden a la información del producto, rastrean el movimiento del producto y se mantienen al día con el inventario utilizando códigos de barras. En ciertos casos, es posible que necesitemos generar y agregar códigos de barras en documentos de MS Word. MS Word es el programa de procesamiento de texto gráfico más popular y ampliamente utilizado. Se utiliza para crear nuevos documentos con texto, imágenes o gráficos, escribir redacciones de calidad profesional, editar y dar formato a los documentos existentes, etc. El DOCX y DOC son los populares formatos de archivo compatibles con MS Word. En este artículo, aprenderemos cómo crear un código de barras en documentos de Word mediante programación usando C#.

En este artículo se tratarán los siguientes temas:

API de C# para crear código de barras en documentos de Word

Para generar un código de barras y agregar una imagen de código de barras a los documentos de Word, seguiremos un procedimiento de dos pasos. En primer lugar, usaremos la API Aspose.Words for .NET para crear o cargar un documento de Word, luego generaremos y agregaremos la imagen del código de barras al documento usando Aspose.BarCode for .NET API. La clase Document de la API de Aspose.Words for .NET permite crear un nuevo documento de Word o cargar un archivo de Word existente en la aplicación. El método Save() de esta clase guarda el documento en la ruta del archivo dada. La clase DocumentBuilder de la API proporciona métodos para crear un documento. Proporciona varios métodos InsertImage() sobrecargados para insertar una imagen en el documento.

La API de Aspose.BarCode for .NET permite generar varios tipos de códigos de barras admitidos. Para este propósito, proporciona la clase BarcodeGenerator para generar el código de barras del EncodeType especificado. Podemos guardar la imagen del código de barras generado usando el método Save() de esta clase. La API también proporciona la enumeración BarCodeImageFormat para especificar los formatos de guardado. Podemos leer el código de barras de las imágenes usando la clase BarCodeReader de la API.

Descargue las DLL de las API o instálelas usando NuGet.

PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.Words

Genere y agregue un código de barras a un documento de Word en C#

Podemos crear un nuevo documento de Word y agregar una imagen de código de barras al documento siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase BarcodeGenerator. Toma el EncodeType y el texto para codificar como argumentos.
  2. A continuación, cree una instancia del objeto de flujo de memoria.
  3. Luego, llame al método Save() para guardar la imagen del código de barras en el flujo de memoria.
  4. A continuación, cree una instancia de la clase Document.
  5. Luego, inicialice una instancia de la clase DocumentBuilder con el objeto Document.
  6. Después de eso, inserte la imagen del código de barras usando el método InsertImage() con el objeto de flujo como argumento.
  7. Finalmente, llama al método Save(). Toma la ruta del archivo DOCX de salida como argumento.

El siguiente ejemplo de código muestra cómo generar y agregar un código de barras a un nuevo documento de Word usando C#.

// Este ejemplo de código demuestra cómo generar y agregar una imagen de código de barras a un documento de Word.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";

// Crea una instancia del objeto de código de barras lineal, establece el texto del código y el tipo de simbología para el código de barras
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code39Standard, "1234567890");

// Crear flujo de memoria y guardar la imagen del código de barras en el flujo de memoria
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Crear un nuevo documento de Word
Aspose.Words.Document doc = new Aspose.Words.Document();

// Crear constructor para objeto de documento
DocumentBuilder builder = new DocumentBuilder(doc);

// Inserte la imagen del código de barras en el documento
builder.InsertImage(ms);

// Guardar el documento de Word
doc.Save(dataDir + "Sample_out.docx");
Genere y agregue un código de barras a un nuevo documento de Word en C#.

Genere y agregue un código de barras a un nuevo documento de Word en C#.

Agregar código de barras a un documento de Word existente en C#

Podemos generar y agregar una imagen de código de barras a cualquier documento de Word existente siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase BarcodeGenerator con EncodeType y texto para codificar como argumentos.
  2. A continuación, cree una instancia del objeto de flujo de memoria.
  3. Luego, llame al método Save() para guardar la imagen del código de barras en el flujo de memoria.
  4. A continuación, cargue un documento de Word existente utilizando la clase Document.
  5. Luego, inicialice una instancia de la clase DocumentBuilder con el objeto Document.
  6. Después de eso, inserte la imagen del código de barras usando el método InsertImage() con el objeto de flujo y su posición como argumentos.
  7. Finalmente, llama al método Save(). Toma la ruta del archivo DOCX de salida como argumento.

El siguiente ejemplo de código muestra cómo generar y agregar un código de barras a un documento de Word existente usando C#.

// Este ejemplo de código demuestra cómo generar y agregar una imagen de código de barras a un documento de Word existente.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";

// Crea una instancia del objeto de código de barras lineal, establece el texto del código y el tipo de simbología para el código de barras
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Codabar, "1234567890");

// Crear flujo de memoria y guardar la imagen del código de barras en el flujo de memoria
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Crear un nuevo documento de Word
Document doc = new Document(dataDir + "sample.docx");

// Crear constructor para objeto de documento
DocumentBuilder builder = new DocumentBuilder(doc);

// Inserte la imagen del código de barras en el documento
builder.InsertImage(ms,
    RelativeHorizontalPosition.Margin,
    0,
    RelativeVerticalPosition.Margin,
    400,
    200,
    100,
    WrapType.Square);

// Guardar el documento de Word
doc.Save(dataDir + "Sample_out.docx");
Agregar código de barras a un documento de Word existente en C#.

Agregar código de barras a un documento de Word existente en C#.

Agregue un código QR a un documento de Word usando C#

Del mismo modo, también podemos generar una imagen de código QR y agregarla al documento de Word siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos configurar EncodeType como QR o GS1QR en el primer paso. Es posible que también necesitemos ajustar la posición de la imagen en el paso 6.

El siguiente ejemplo de código muestra cómo agregar un código QR a un documento de Word usando C#.

// Este ejemplo de código demuestra cómo generar y agregar un código QR a un documento de Word existente.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";

// Crea una instancia del objeto de código de barras lineal, establece el texto del código y el tipo de simbología para el código de barras
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");

// Crear flujo de memoria y guardar la imagen del código de barras en el flujo de memoria
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Crear un nuevo documento de Word
Document doc = new Document(dataDir + "sample.docx");

// Crear constructor para objeto de documento
DocumentBuilder builder = new DocumentBuilder(doc);

// Inserte la imagen del código de barras en el documento
builder.InsertImage(ms,
    RelativeHorizontalPosition.Margin,
    400,
    RelativeVerticalPosition.Margin,
    -50,
    100,
    100,
    WrapType.Square);

// Guardar el documento de Word
doc.Save(dataDir + "Sample_qr_out.docx");
Agregue el código QR al documento de Word usando C#.

Agregue el código QR al documento de Word usando C#.

Lea el código de barras de un documento de Word usando C#

Podemos reconocer cualquier imagen de código de barras disponible en cualquier página del documento de Word siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue un documento de Word existente utilizando la clase Document.
  2. A continuación, acceda a los tipos NodeCollection de Shape mediante el método GetChildNodes().
  3. Luego, recorra todas las formas y verifique si la forma es una imagen.
  4. A continuación, guarde la imagen en la secuencia.
  5. Luego, cree una instancia de la clase BarCodeReader con el flujo de imágenes y DecodeType como argumentos.
  6. Después de eso, llame al método ReadBarCodes() para obtener el objeto BarCodeResult.
  7. Finalmente, muestra la información del código de barras.

El siguiente ejemplo de código muestra cómo leer una imagen de código de barras de un documento de Word usando C#.

// Este ejemplo de código demuestra cómo leer un código de barras de un documento de Word.
// La ruta al directorio de documentos.
string dataDir = @"C:\Files\BarCode\";

// Cargue el documento de Word
Document wordDocument = new Document(dataDir + "sample_out.docx");

// Consigue todas las formas
NodeCollection shapes = wordDocument.GetChildNodes(NodeType.Shape, true);

// Bucle a través de todas las formas
foreach (Shape shape in shapes)
{
  // Comprueba si tiene una imagen.
  if (shape.HasImage)
  {
    // Guardar la imagen en el flujo de memoria
    MemoryStream imgStream = new MemoryStream();
    shape.ImageData.Save(imgStream);

    // Reconocer el código de barras del flujo de imágenes de arriba
    using (BarCodeReader reader = new BarCodeReader(new Bitmap(imgStream), DecodeType.Code39Standard))
    {
      foreach (BarCodeResult result in reader.ReadBarCodes())
      {
        Console.WriteLine("Codetext found: " + result.CodeText + ", Symbology: " + result.CodeType);
      }
    }
  }
}
Codetext found: 1234567890, Symbology: Code39Standard

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido a:

  • crear un documento de Word mediante programación;
  • generar una imagen de código de barras y agregarla al documento de Word;
  • crear un código QR e insertarlo en un documento de Word;
  • leer una imagen de código de barras de un documento de Word en C#.

Además, puede obtener más información sobre Aspose.BarCode for .NET API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también