Comment lire des codes-barres dans des documents PDF
Comment lire un code-barres dans un PDF en C# ;
Installez la bibliothèque de codes-barres pour traiter les fichiers de codes-barres.
Créez les
PdfBarcodeReaderOptions
si nécessaire.Utilisez la méthode
ReadPdf
deBarcodeReader
pour lire les codes-barres des PDF.Spécifiez des options supplémentaires de lecture de code-barres en utilisant
BarcodeReaderOption
.Extraire les valeurs des codes-barres.
<
Lire directement les codes-barres des documents PDF
Outre la capacité d'IronBarcode à lire des codes-barres à partir d'images, IronBarcode est également fier de sa capacité à lire des codes-barres à partir de documents PDF. Cela évite aux utilisateurs de devoir convertir des documents PDF en images avant de les introduire dans IronBarcode pour les lire. Les documents PDF étant plus complexes et différents des images, il convient d'utiliser une méthode de lecture différente, à savoir BarcodeReader.ReadPdf()
method. Cette méthode accepte différents types de documents PDF, notamment :
- tableau d'octets [] : Document PDF sous forme de tableau d'octets.
- IEnumerable
: Documents PDF sous forme de tableaux d'octets stockés dans une collection. - Flux de mémoire : Documents PDF en tant que type MemoryStream.
- IEnumerable
: Documents PDF en tant que collection de MemoryStream - Chaîne : Chaîne du chemin d'accès au document PDF. Si le document PDF est déjà copié dans le projet, il s'agit du nom du document PDF dans la chaîne.
- IEnumerable
: Chaînes de chemin/nom de document PDF stockées dans une collection.
Outre les types de données mentionnés ci-dessus, BarcodeReader.ReadPdf()
accepte également PdfBarcodeReaderOptions
pour une lecture plus avancée/améliorée que nous aborderons dans le prochain sous-thème. Voyons maintenant l'extrait de code ci-dessous qui en démontre l'utilisation 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
L'extrait de code ci-dessus montre que, pour lire des codes-barres à l'aide d'IronBarcode, il suffit d'ajouter la chaîne du chemin d'accès au document PDF dans le champ BarcodeReader.ReadPdf()
method to read the barcode value, and store the result in a variable. Si vous souhaitez imprimer les valeurs de tous les codes-barres trouvés dans le document PDF sur la console, utilisez simplement foreach
pour itérer et imprimer chaque élément trouvé dans la variable en appelant ToString()
method on them. En outre, l'extrait de code ci-dessus démontre également l'utilisation d'une collection de noms de documents PDF en tant qu'argument dans la commande BarcodeReader.ReadPdf()
.
Mais que se passe-t-il si les codes-barres du document PDF ne peuvent pas être lus ? Que se passe-t-il si les performances sont si lentes ? C'est ici que lecture avancée de codes-barres PDF se déroule, au cours de laquelle nous manipulerons PdfBarcodeReaderOptions
pour améliorer la qualité, la précision et la performance de la lecture.
Configuration des options du lecteur de codes-barres PDF
Tout comme la lecture de codes-barres à partir d'une image, la lecture de codes-barres à partir d'un document PDF permet également aux utilisateurs de modifier ou d'ajuster les propriétés du lecteur de codes-barres, appelées PdfBarcodeReaderOptions
. Ajustement des propriétés dans PdfBarcodeReaderOptions
aidera grandement à la lecture la qualité, la précision et la performance. Toutes les propriétés ajustables dans BarcodeReaderOptions
sont héritées dans PdfBarcodeReaderOptions
avec quelques propriétés supplémentaires pour les documents PDF. Pour commencer, les utilisateurs peuvent spécifier le numéro de page ou collection de numéros de page à partir du document PDF dans lequel ils souhaitent que la PdfBarcodeReaderOptions
à appliquer, lors de l'instanciation d'une nouvelle instance de PdfBarcodeReaderOptions
. L'extrait de code ci-dessous démontre
: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)
Découvrons maintenant les propriétés supplémentaires de PdfBarcodeReaderOptions
disponibles pour être manipulés, en dehors de ceux qui sont disponibles en BarcodeReaderOptions
DPI
Les utilisateurs peuvent spécifier le nombre de points par pouce (DPI) de l'image du code-barres dans un document PDF. Cela permet de lire une image de code-barres de faible qualité dans un document PDF. Cette propriété peut être définie à l'aide de Entier valeur.
Numéros de page
Si les utilisateurs connaissent à l'avance le numéro de page qui contient le code-barres qui doit être lu dans un document PDF, ils peuvent le spécifier dans cette propriété. Cela améliorera considérablement les performances de lecture d'IronBarcode, en particulier pour les documents PDF comportant de nombreuses pages, puisque IronBarcode n'aura pas besoin de lire toutes les pages ou les pages qui ne comportent pas de codes-barres à lire. Cette propriété est basée sur 1, ce qui signifie que la première page du document PDF est 1 au lieu de 0.
Mot de passe
Comme son nom l'indique, cette propriété permet aux utilisateurs de travailler avec des fichiers PDF cryptés qui nécessitent la saisie d'un mot de passe pour accéder au contenu du document PDF. Notez toutefois qu'IronBarcode ne sera pas en mesure de donner le mot de passe des documents PDF. Ce bien accepte Chaîne l'entrée.
Échelle
Cette propriété permet aux utilisateurs de contrôler la facteur d'échelle pour la mise à l'échelle de la largeur et de la hauteur lors de la conversion en image. Ce bien accepte Entier et la valeur par défaut de cette propriété est 3.5. La définition de cette propriété facilite la lecture des petits codes-barres présents dans un document PDF, car la mise à l'échelle agrandit le document PDF.
Lecture avancée de codes-barres à partir d'un document PDF
Maintenant que nous connaissons les propriétés de PdfBarcodeReaderOptions
nous allons voir comment les appliquer dans le projet de lecture de codes-barres dans un document 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
L'extrait de code ci-dessus montre comment mettre en œuvre l'option PdfBarcodeReaderOptions
propriétés en IronBarcode. Les PdfBarcodeReaderOptions
doit d'abord être initialisé avec un nom de variable avant d'accéder aux propriétés et de les ajuster. Dans l'extrait de code également, nous pouvons voir que la liste des numéros de page du document PDF a été utilisée comme argument lors de l'initialisation de l'application PdfBarcodeReaderOptions
. Il s'agit du numéro de la page pour laquelle nous souhaitons obtenir les paramètres PdfBarcodeReader
pour postuler. Les utilisateurs peuvent également spécifier le numéro de page du PDF dans le champ PdfBarcodeReaderOptions
comme Numéros de page
.
D'autre part, nous pouvons également voir que nous pouvons utiliser des propriétés de BarcodeReaderOptions
tels que Attendre des codes multiples
et Types de codes-barres attendus
en PdfBarcodeReaderOptions
puisqu'elles sont héritées de la classe d'origine. Cela contribuera grandement à la performance et à la précision de la lecture. Pour appliquer les propriétés de l'ensemble de PdfBarcodeReaderOptions
dans la lecture du code-barres, saisissez le nom de la variable de la PdfBarcodeReaderOptions
que nous avons créée en tant que deuxième argument dans BarcodeReader.ReadPdf()
method, with PDF document to be read file path as the first argument.