Agregar código de barras a PDF usando C#

PDF es el formato más popular para compartir e imprimir documentos. Muchas organizaciones utilizan PDF como formato estándar para generar informes y compartir otros documentos oficiales. En ciertos casos, es posible que necesitemos incrustar datos o información específicos sobre el documento, el producto o la empresa como una imagen de código de barras en documentos PDF. Podemos agregar una imagen de código de barras legible por máquina a un documento PDF mediante programación en aplicaciones .NET. En este artículo, aprenderemos cómo agregar un código de barras a documentos PDF usando C#.

El artículo cubrirá los siguientes temas:

API de C# para agregar código de barras a PDF

Para agregar códigos de barras a documentos PDF, seguiremos un procedimiento de dos pasos. En primer lugar, usaremos la API Aspose.PDF for .NET para crear o cargar un documento PDF, luego generaremos y agregaremos la imagen del código de barras al PDF usando Aspose.BarCode for .NET API. Descargue las DLL de las API o instálelas usando NuGet.

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

Crear documento PDF y agregar código de barras en C#

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

  1. En primer lugar, cree una instancia de la clase BarcodeGenerator con 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, agregue una página al documento PDF recién creado.
  6. A continuación, cree una instancia de la clase PdfFileMend.
  7. Luego, llama al método BindPdf() con el objeto Document para vincularlo.
  8. A continuación, llame al método AddImage() con el objeto de transmisión y las coordenadas de posición de la imagen como argumentos.
  9. Después de eso, guarde el PDF usando el método Save(). Toma la ruta del archivo PDF de salida como argumento.
  10. Finalmente, llame al método Close() para cerrar el objeto PdfFileMend.

El siguiente ejemplo de código demuestra cómo crear un nuevo documento PDF y agregar una imagen de código de barras usando C#.

// Este ejemplo de código demuestra cómo agregar una imagen de código de barras a un PDF.
// La ruta al directorio de documentos.
string dataDir = @"D:\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, "1234567");

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

// Cree un documento PDF y agregue una página al documento
Document doc = new Document();
doc.Pages.Add();

// Abrir documento
PdfFileMend mender = new PdfFileMend();

// Enlazar el PDF para agregar el código de barras
mender.BindPdf(doc);

// Agregar imagen de código de barras en el archivo PDF
mender.AddImage(ms, 1, 100, 600, 200, 700);

// Guardar cambios
mender.Save(dataDir + "AddImage_out.pdf");

// Cerrar objeto PdfFileMend
mender.Close();
Cree un documento PDF y agregue un código de barras en C#.

Cree un documento PDF y agregue un código de barras en C#.

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

También podemos agregar una imagen de código de barras a cualquier página de documentos PDF existentes. El método AddImage() permite agregar una imagen a la página especificada del documento PDF en las coordenadas especificadas. Podemos insertar una imagen en un documento PDF existente siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase BarcodeGenerator con 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, cargue el documento PDF utilizando la clase Document.
  5. Luego, cree una instancia de la clase PdfFileMend.
  6. A continuación, llame al método BindPdf() con el objeto Document para enlazarlo.
  7. Luego, llame al método AddImage() con el objeto de transmisión, el número de página y las coordenadas de posición de la imagen como argumentos.
  8. Después de eso, guarde el PDF usando el método Save(). Toma la ruta del archivo PDF de salida como argumento.
  9. Finalmente, llame al método Close() para cerrar el objeto PdfFileMend.

El siguiente ejemplo de código demuestra cómo agregar una imagen de código de barras a un documento PDF existente usando C#.

// Este ejemplo de código demuestra cómo agregar una imagen de código de barras a un PDF existente.
// La ruta al directorio de documentos.
string dataDir = @"D:\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, "1234567");

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

// Cargar un documento PDF
Document doc = new Document(dataDir + "sample.pdf");

// Abrir documento
PdfFileMend mender = new PdfFileMend();

// Enlazar PDF para agregar imagen de código de barras
mender.BindPdf(doc);

// Agregar imagen de código de barras en el archivo PDF
mender.AddImage(ms, 1, 70, 0, 200, 600);

// Guardar cambios
mender.Save(dataDir + "Sample_out.pdf");

// Cerrar objeto PdfFileMend
mender.Close();
Agregar código de barras a un documento PDF existente en C#.

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

Agregar código QR a documentos PDF en C#

Del mismo modo, también podemos agregar un código QR a los documentos PDF siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos configurar EncodeType como QR en el primer paso. Es posible que también necesitemos ajustar la posición de la imagen en el paso # 7.

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

// Este ejemplo de código demuestra cómo agregar un código QR a un PDF existente.
// La ruta al directorio de documentos.
string dataDir = @"D:\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");

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

// Cargar un documento PDF
Document doc = new Document(dataDir + "sample.pdf");

// Abrir documento
PdfFileMend mender = new PdfFileMend();

// Enlazar PDF para agregar imagen de código de barras
mender.BindPdf(doc);

// Añadir imagen QR en el archivo PDF
mender.AddImage(ms, 1, 0, 650, 200, 780);

// Guardar cambios
mender.Save(dataDir + "Sample_QR_out.pdf");

// Cerrar objeto PdfFileMend
mender.Close();
Agregue código QR a documentos PDF en C#.

Agregue código QR a documentos PDF en C#.

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

Podemos reconocer cualquier imagen de código de barras incrustada en cualquiera de las páginas del documento PDF utilizando la clase PdfExtractor. Permite extraer imágenes de PDF y luego leeremos la información del código de barras de la imagen extraída. Podemos leer códigos de barras de los documentos PDF siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase PdfExtractor.
  2. A continuación, enlace el documento PDF de entrada con el método BindPdf().
  3. Luego, configure el rango de páginas para la extracción de imágenes.
  4. A continuación, llame al método ExtractImage() para extraer las imágenes.
  5. Luego, guarde la imagen para transmitir en un bucle.
  6. A continuación, cree una instancia de la clase BarCodeReader con el flujo de imágenes y DecodeType como argumentos.
  7. Después de eso, llame al método ReadBarCodes() para obtener el objeto BarCodeResult.
  8. Finalmente, muestra la información del código de barras.

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

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

// Encuadernar el documento pdf
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(dataDir);

// Establecer el rango de páginas para la extracción de imágenes
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 1;

// Extrae las imágenes
pdfExtractor.ExtractImage();

// Guardar imágenes para transmitir en un bucle
while (pdfExtractor.HasNextImage())
{
  // Guardar imagen para transmitir
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

  // Reconocer el código de barras del flujo de imágenes de arriba
  using (BarCodeReader reader = new BarCodeReader(imageStream, DecodeType.Code39Standard))
  {
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
      Console.WriteLine("Codetext found: " + result.CodeText);
      Console.WriteLine("Symbology: " + result.CodeType);
    }
  }
}
Codetext found: 1234567
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 PDF mediante programación;
  • generar y agregar una imagen de código de barras al PDF en C#;
  • extraer imágenes de un documento PDF usando C#;
  • leer la imagen del código de barras de un documento PDF.

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