Comment lire des codes-barres à partir de PDF en C#

How to read Barcodes from PDF Documents

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

Lire les codes-barres à partir de documents PDF revient à détecter et décoder les codes-barres présents dans les pages d'un fichier PDF. Plutôt que de scanner manuellement un code-barre imprimé, cette technologie permet l'extraction directe des informations encodées à partir d'un document numérique. Ceci est particulièrement utile pour automatiser les flux de travail impliquant le traitement des factures, des étiquettes d'expédition, des rapports et d'autres documents qui utilisent des codes-barres pour stocker des données.

Démarrage rapide : Lecture de codes-barres directement à partir d'un PDF)

Commencez directement en utilisant la méthode ReadPdf d'IronBarcode — elle lit instantanément les codes-barres des PDFs sans les convertir d'abord en images. Avec une seule ligne de code, vous pouvez extraire rapidement les données des codes-barres et commencer à développer des options plus avancées si nécessaire.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var results = IronBarCode.BarcodeReader.ReadPdf("invoice.pdf");
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer

as-heading:3(Aperçu : Flux de travail minimal

  1. Installez la bibliothèque de codes-barres pour traiter les fichiers de codes-barres.
  2. Créez PdfBarcodeReaderOptions si nécessaire.
  3. Utilisez la méthode ReadPdf de BarcodeReader pour lire les codes-barres des PDFs.
  4. Spécifiez des options de lecture de code-barres supplémentaires en utilisant BarcodeReaderOption.
  5. Extrayez les valeurs des codes-barres.

Lisez directement les codes-barres des documents PDF

Outre la capacité d'IronBarcodes à lire les codes-barres à partir d'images, IronBarcode est également fier de sa capacité à lire les codes-barres à partir de documents PDF. Cela évite aux utilisateurs la difficulté de convertir des documents PDF en images avant de les utiliser dans IronBarcode pour la lecture. Étant donné que les documents PDF sont plus complexes et différents des images, une méthode de lecture différente doit également être utilisée, à savoir la méthode BarcodeReader.ReadPdf(). Cette méthode accepte divers types d'entrée de documents PDF, y compris :

  • tableau de byte[] : document PDF sous forme de tableau d'octets.
  • IEnumerable<Byte[]> : documents PDF sous forme de tableaux d'octets stockés dans une collection.
  • MemoryStream : documents PDF sous forme de type MemoryStream.
  • IEnumerable<Stream> : documents PDF sous forme de collection de MemoryStream.
  • String : chemin d'accès au document PDF sous forme de chaîne. Si le document PDF est déjà copié dans le projet, cela sera le nom du document PDF sous forme de chaîne.
  • IEnumerable<String> : chemins/noms de documents PDF stockés dans une collection.

En dehors des types d'entrée mentionnés ci-dessus, BarcodeReader.ReadPdf() accepte également PdfBarcodeReaderOptions pour une lecture plus avancée/améliorée que nous aborderons dans le sous-sujet suivant. Voyons maintenant l'extrait de code ci-dessous qui illustre l'utilisation de la méthode BarcodeReader.ReadPdf() pour lire les codes-barres dans les documents PDF.

: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.ReadPdfs(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.ReadPdfs(docs) 'can also accept individual PDF document file path as argument

For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
$vbLabelText   $csharpLabel

À partir de l'extrait de code ci-dessus, nous pouvons voir que pour lire les codes-barres à l'aide d'IronBarcode, nous pouvons simplement ajouter la chaîne de chemin de fichier du document PDF dans la méthode BarcodeReader.ReadPdf() pour lire la valeur du code-barre et stocker le résultat dans une variable. Si vous souhaitez imprimer les valeurs de tous les codes-barres trouvés dans le document PDF sur la console, utilisez simplement une boucle foreach pour itérer et imprimer chaque élément trouvé dans la variable en appelant la méthode ToString() sur eux. En outre, l'extrait de code ci-dessus démontre également l'utilisation d'une collection de noms de documents PDF comme argument dans BarcodeReader.ReadPdf().

Lecture de plusieurs PDF à la fois

En plus d'ajouter individuellement chaque PDF au tableau, IronBarCode introduit également une méthode ReadPdfs qui permet aux développeurs de rapidement lire une liste de PDFs. Cela est utile lorsqu'il y a plusieurs PDFs dont vous souhaitez extraire le code-barres, évitant ainsi de les ajouter un par un. Regardons un exemple ci-dessous.

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-read-from-multiple-pdf.cs
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

// Get all PDF files from a directory and add to list
string folderPath = @"PATH_TO_YOUR_FOLDER";
List<string> docs = new List<string>(Directory.GetFiles(folderPath, "*.pdf"));

// Read barcodes from all PDFs
var docResult = BarcodeReader.ReadPdfs(docs);

// Print results
foreach (var doc in docResult)
{
    foreach (var item in doc)
    {
        Console.WriteLine("Barcode " + item.ToString() + " found at page " + item.PageNumber);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dans le code ci-dessus, nous obtenons d'abord tous les fichiers PDF d'un répertoire, puis nous les ajoutons à la List<string>, puis appelons ReadPdfs et utilisons docs comme notre paramètre d'entrée. La méthode ReadPdfs retourne alors un tableau de BarcodeResults. Enfin, nous parcourons le docResult et imprimons les codes-barres trouvés dans chaque PDF.

Définition des options du lecteur de codes-barres PDF

De la même manière que pour lire les codes-barres à partir d'images, la lecture des codes-barres à partir de documents PDF permet également aux utilisateurs de régler ou d'ajuster les propriétés dans le lecteur de codes-barres appelé PdfBarcodeReaderOptions. L'ajustement des propriétés dans PdfBarcodeReaderOptions aidera grandement à la lecture en termes de qualité, précision et 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. Les utilisateurs peuvent spécifier le numéro de page ou la collection de numéros de pages du document PDF auquel ils souhaitent que s'appliquent les PdfBarcodeReaderOptions 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)
$vbLabelText   $csharpLabel

Découvrons maintenant les propriétés supplémentaires disponibles dans PdfBarcodeReaderOptions pour la manipulation, en dehors de celles disponibles dans BarcodeReaderOptions.

DPI

Les utilisateurs peuvent spécifier le DPI ou Dots Per Inch de l'image du code-barres dans un document PDF. Cela aidera à lire une image de code-barres de mauvaise qualité dans un document PDF. Cette propriété peut être définie à l'aide d'une valeur Integer.

Numéros de pages

Si les utilisateurs savent à l'avance le numéro de page qui contient le code-barres à lire dans un document PDF, ils peuvent le spécifier dans cette propriété. Cela améliorera grandement la performance de lecture d'IronBarcode, en particulier pour les documents PDF qui ont de nombreuses pages, car IronBarcode n'aurait pas besoin de lire toutes les pages ou les pages qui n'ont 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 une saisie de mot de passe pour accéder au contenu du document PDF. Veuillez noter cependant qu'IronBarcode ne pourra pas fournir le mot de passe du document PDF. Cette propriété acceptera une entrée String.

Échelle

Cette propriété permet aux utilisateurs de contrôler le facteur d'échelle pour redimensionner la largeur et la hauteur lors de la conversion en image. Cette propriété accepte une valeur Integer, et la valeur par défaut pour cette propriété est 3.5. Régler cette propriété aidera à lire de petits codes-barres présents dans un document PDF, car l'agrandissement zoomera le document PDF.

Lecture avancée de codes-barres à partir de documents PDF

Maintenant que nous connaissons les propriétés dans PdfBarcodeReaderOptions disponibles pour les ajustements et les modifications, voyons comment les appliquer dans le projet pour lire les 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
$vbLabelText   $csharpLabel

L'extrait de code ci-dessus montre comment implémenter les propriétés de PdfBarcodeReaderOptions dans IronBarcode. Le PdfBarcodeReaderOptions doit d'abord être initialisé avec un nom de variable avant d'accéder et d'ajuster les propriétés. Dans l'extrait de code, nous pouvons voir que la liste des numéros de pages du document PDF a été utilisée comme argument lors de l'initialisation de PdfBarcodeReaderOptions. Cela spécifie le numéro de page auquel nous voulons que les paramètres de PdfBarcodeReader s'appliquent. Les utilisateurs peuvent également spécifier le numéro de page PDF dans la propriété PdfBarcodeReaderOptions sous forme de PageNumbers.

D'autre part, nous pouvons également voir que nous pouvons utiliser des propriétés de BarcodeReaderOptions telles que ExpectMultipleBarcodes et ExpectBarcodeTypes dans PdfBarcodeReaderOptions car elles sont héritées de la classe d'origine. Cela aidera grandement à la performance générale de la lecture et à la précision. Pour appliquer les propriétés définies de PdfBarcodeReaderOptions dans la lecture des codes-barres, entrez le nom de variable de la classe PdfBarcodeReaderOptions que nous avons créée comme deuxième argument dans la méthode BarcodeReader.ReadPdf(), avec le chemin du fichier du document PDF à lire comme premier argument.

Questions Fréquemment Posées

Comment lire des codes-barres à partir de documents PDF ?

Vous pouvez lire des codes-barres à partir de documents PDF en utilisant la méthode `ReadPdf` de la classe `BarcodeReader` dans une application .NET. Cette méthode accepte des entrées comme des tableaux d'octets, des flux en mémoire, et des chemins de fichiers.

Quels sont les avantages de l'utilisation de PdfBarcodeReaderOptions ?

PdfBarcodeReaderOptions fournit des paramètres pour améliorer la qualité et l'exactitude de la lecture de codes-barres, tels que l'ajustement du DPI, la spécification des numéros de page, et la gestion des PDF cryptés avec un mot de passe.

Puis-je lire des codes-barres à partir de documents PDF cryptés ?

Oui, vous pouvez lire des codes-barres à partir de documents PDF cryptés en utilisant la propriété Password dans PdfBarcodeReaderOptions pour fournir le mot de passe nécessaire.

Comment puis-je améliorer l'efficacité de la lecture de codes-barres à partir de PDF ?

Améliorez l'efficacité en utilisant PdfBarcodeReaderOptions pour spécifier les numéros de page et ajuster le facteur d'échelle, ce qui réduit le besoin de convertir les PDF en images, économisant du temps et des ressources.

Quels formats d'entrée la méthode ReadPdf accepte-t-elle ?

La méthode `ReadPdf` accepte divers formats d'entrée, y compris les tableaux byte[], MemoryStream, et les chemins de fichiers en chaîne.

Est-il possible de lire plusieurs codes-barres à partir d'un seul fichier PDF ?

Oui, en définissant la propriété ExpectMultipleBarcodes dans PdfBarcodeReaderOptions, vous pouvez lire plusieurs codes-barres à partir d'un seul fichier PDF.

Comment puis-je spécifier la résolution pour la lecture de codes-barres dans les PDF ?

Spécifiez la résolution en définissant la propriété DPI dans PdfBarcodeReaderOptions à votre valeur entière désirée pour contrôler la qualité du balayage.

Quel est le rôle du facteur d'échelle dans la lecture de codes-barres à partir de PDF ?

Le facteur d'échelle, par défaut à 3,5, est utilisé pour convertir un PDF en image, influençant la qualité et les performances de la lecture de codes-barres.

Puis-je utiliser une bibliothèque de codes-barres .NET pour lire des codes-barres à partir d'images ?

Oui, une bibliothèque de codes-barres .NET comme IronBarcode peut lire des codes-barres à partir d'images et de fichiers PDF, en utilisant des méthodes spécifiques pour chaque format.

Que devrais-je faire si la lecture de codes-barres n'est pas assez précise ?

Si la lecture de codes-barres n'est pas précise, ajustez les PdfBarcodeReaderOptions en modifiant le DPI, le facteur d'échelle, ou en spécifiant les numéros de page corrects pour améliorer la qualité.

Hairil Hasyimi Bin Omar
Ingénieur logiciel
Comme tous les grands ingénieurs, Hairil est un apprenant avide. Il affine ses connaissances en C#, Python et Java, utilisant ces connaissances pour apporter de la valeur aux membres de l'équipe dans toute Iron Software. Hairil a rejoint l'équipe d'Iron Software depuis l'Université Teknologi MARA en Malaisie, ...
Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,935,276 | Version : 2025.11 vient de sortir