Cómo leer códigos de barras de documentos PDF
Cómo leer códigos de barras de PDF en C#
Instale la biblioteca de códigos de barras para procesar archivos de códigos de barras.
Crear
PdfBarcodeReaderOptions
si es necesario.Utilice el método
ReadPdf
deBarcodeReader
para leer códigos de barras de archivos PDF.Especifique opciones adicionales de lectura de códigos de barras mediante
BarcodeReaderOption
.Extraer valores de códigos de barras.
<
Lea directamente códigos de barras de documentos PDF
Aparte de la capacidad de IronBarcodes para leer códigos de barras a partir de imágenes, IronBarcode también se enorgullece de su capacidad para leer códigos de barras a partir de documentos PDF. Esto ahorra a los usuarios la molestia de convertir documentos PDF en imágenes antes de introducirlos en IronBarcode para su lectura. Dado que los documentos PDF son más complejos y diferentes de las imágenes, también debe utilizarse un método de lectura diferente, que es el siguiente BarcodeReader.ReadPdf()
method. Este método acepta varios tipos de entrada de documentos PDF, incluidos los :
- byte [] matriz : Documento PDF como matriz de bytes.
- IEnumerable
: Documentos PDF como matrices de bytes almacenadas en una colección. - MemoryStream : Documentos PDF como tipo MemoryStream.
- IEnumerable
: Documentos PDF como colección de MemoryStream - Cadena : Cadena de ruta del documento PDF. Si el documento PDF ya está copiado en el proyecto, este sería el nombre del documento PDF en cadena.
- IEnumerable
: Cadenas de rutas/nombres de documentos PDF almacenados en una colección.
Aparte de los tipos de entrada mencionados anteriormente, BarcodeReader.ReadPdf()
también acepta PdfBarcodeReaderOptions
para una lectura más avanzada/mejorada que trataremos en el siguiente subtema. Veamos ahora el siguiente fragmento de código que demuestra el uso BarcodeReader.ReadPdf()
method to read barcodes in PDF documents.
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;
List<String> docs = new List<String>();
docs.Add(@"pdf_a.pdf");
docs.Add(@"pdf_b.pdf");
var myBarcode = BarcodeReader.ReadPdf(docs); //can also accept individual PDF document file path as argument
foreach (var value in myBarcode)
{
Console.WriteLine(value.ToString());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
Private docs As New List(Of String)()
docs.Add("pdf_a.pdf")
docs.Add("pdf_b.pdf")
Dim myBarcode = BarcodeReader.ReadPdf(docs) 'can also accept individual PDF document file path as argument
For Each value In myBarcode
Console.WriteLine(value.ToString())
Next value
A partir del fragmento de código anterior, podemos ver que, para leer códigos de barras utilizando IronBarcode, sólo tenemos que añadir la cadena de ruta de archivo del documento PDF en BarcodeReader.ReadPdf()
method to read the barcode value, and store the result in a variable. Si desea imprimir en la consola los valores de todos los códigos de barras que se encuentran en el documento PDF, sólo tiene que utilizar foreach
para iterar e imprimir cada elemento encontrado en la variable llamando a ToString()
method on them. Además, el fragmento de código anterior también demuestra el uso de una colección de nombres de documentos PDF como argumento en BarcodeReader.ReadPdf()
.
Pero, ¿y si no se pudieran leer los códigos de barras del documento PDF? ¿Y si el rendimiento es tan lento? Aquí es donde lectura avanzada de códigos de barras PDF en la que manipularemos PdfBarcodeReaderOptions
para mejorar la calidad, la precisión y el rendimiento de la lectura.
Configuración de las opciones del lector de códigos de barras PDF
Al igual que la lectura de códigos de barras a partir de una imagen, la lectura de códigos de barras a partir de un documento PDF también permite a los usuarios modificar o ajustar las propiedades del lector de códigos de barras, denominadas PdfBarcodeReaderOptions
. Ajuste de las propiedades en PdfBarcodeReaderOptions
será de gran ayuda en la lectura calidad, precisión y también rendimiento. Todas las propiedades ajustables en BarcodeReaderOptions
se heredan en PdfBarcodeReaderOptions
con algunas propiedades adicionales para documentos PDF. Para empezar, los usuarios pueden especificar el número de página o colección de números de página del documento PDF en el que desean PdfBarcodeReaderOptions
a aplicar, al instanciar una nueva instancia de PdfBarcodeReaderOptions
. El siguiente fragmento de código lo demuestra
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-2.cs
using IronBarCode;
using System.Collections.Generic;
List<int> pageNumber = new List<int>() { 1, 2, 3 };
PdfBarcodeReaderOptions PdfOptions = new PdfBarcodeReaderOptions(pageNumber) // can also use individual page number as argument
{
// Properties of PDF Barcode reader options
};
Imports IronBarCode
Imports System.Collections.Generic
Private pageNumber As New List(Of Integer)() From {1, 2, 3}
Private PdfOptions As New PdfBarcodeReaderOptions(pageNumber)
Descubramos ahora las propiedades adicionales en PdfBarcodeReaderOptions
disponibles para ser manipuladas, aparte de las disponibles en BarcodeReaderOptions
DPI
Los usuarios pueden especificar los DPI o puntos por pulgada de la imagen del código de barras en un documento PDF. Esto ayudará en la lectura de una imagen de código de barras de baja calidad en un documento PDF. Esta propiedad puede establecerse mediante Entero valor.
Números de página
Si los usuarios conocen de antemano el número de página que contiene el código de barras que debe leerse en un documento PDF, pueden especificarlo en esta propiedad. Hacer esto mejorará mucho el rendimiento de lectura de IronBarcode, especialmente en documentos PDF que tienen muchas páginas, ya que IronBarcode no necesitaría leer todas las páginas o páginas que no tienen códigos de barras para ser leídas. Esta propiedad está basada en 1, lo que significa que la primera página del documento PDF es 1 en lugar de 0.
Contraseña
Como su nombre indica, esta propiedad permite a los usuarios trabajar con archivos PDF cifrados que requieren la introducción de una contraseña para acceder al contenido del documento PDF. Sin embargo, tenga en cuenta que IronBarcode no podrá proporcionar la contraseña de los documentos PDF. Esta propiedad aceptará Cadena entrada.
Escala
Esta propiedad permite a los usuarios controlar el factor de escala para escalar la anchura y la altura al convertir a Imagen. Esta propiedad acepta Entero y el valor por defecto de esta propiedad es 3.5. Establecer esta propiedad ayudará a leer códigos de barras pequeños presentes en un documento PDF, ya que al aumentar la escala se ampliará el documento PDF.
Lectura avanzada de códigos de barras de documentos PDF
Ahora que conocemos las propiedades en PdfBarcodeReaderOptions
disponibles para ajustes y retoques, veamos cómo aplicarlos en el proyecto de lectura de códigos de barras en documento PDF.
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-3.cs
using IronBarCode;
using System;
using System.Collections.Generic;
List<int> pageNumber = new List<int>() { 1, 2, 3 };
PdfBarcodeReaderOptions PdfOptions = new PdfBarcodeReaderOptions(pageNumber)
{
DPI = 150,
//PageNumbers = pageNumber, //this property is not needed if page numbers has been specified as the argument in PdfBarcodeReaderOptions
Password = "barcode",
Scale = 3.5,
//properties below are some of the properties inherited from BarcodeReaderOptions
Speed = ReadingSpeed.Detailed,
ExpectBarcodeTypes = BarcodeEncoding.Code93,
ExpectMultipleBarcodes = true
};
var myBarcode = BarcodeReader.ReadPdf(@"pdf_a_filepath.pdf", PdfOptions);
foreach (var value in myBarcode)
{
Console.WriteLine(value.ToString());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
Private pageNumber As New List(Of Integer)() From {1, 2, 3}
Private PdfOptions As New PdfBarcodeReaderOptions(pageNumber) With {
.DPI = 150,
.Password = "barcode",
.Scale = 3.5,
.Speed = ReadingSpeed.Detailed,
.ExpectBarcodeTypes = BarcodeEncoding.Code93,
.ExpectMultipleBarcodes = True
}
Private myBarcode = BarcodeReader.ReadPdf("pdf_a_filepath.pdf", PdfOptions)
For Each value In myBarcode
Console.WriteLine(value.ToString())
Next value
El fragmento de código anterior muestra cómo implementar PdfBarcodeReaderOptions
propiedades en IronBarcode. En PdfBarcodeReaderOptions
primero necesita ser inicializado con un nombre de variable antes de acceder y ajustar las propiedades. En el fragmento de código también podemos ver que la lista de números de página del documento PDF se utilizó como argumento al inicializar PdfBarcodeReaderOptions
. Esto especifica el número de página que queremos que los ajustes de PdfBarcodeReader
para solicitarlo. Los usuarios también pueden especificar el número de página del PDF en el campo PdfBarcodeReaderOptions
propiedad como Números de página
.
Por otro lado, también podemos ver que podemos utilizar propiedades de BarcodeReaderOptions
como ExpectMultipleBarcodes
y EsperarTiposDeCódigo
en PdfBarcodeReaderOptions
ya que se heredan de la clase original. Esto ayudará en gran medida al rendimiento y la precisión de la lectura en general. Para aplicar las propiedades de conjunto de PdfBarcodeReaderOptions
en la lectura del código de barras, introduzca el nombre de la variable del PdfBarcodeReaderOptions
que creamos como segundo argumento en BarcodeReader.ReadPdf()
method, with PDF document to be read file path as the first argument.