Comment extraire un code-barres d’un PDF avec GroupDocs.Parser Java

L’analyse de documents PDF par modèle est une exigence courante lorsque vous devez extraire des données structurées telles que des codes-barres, des QR codes ou des champs de formulaire. Dans ce tutoriel, vous apprendrez comment extraire un code-barres d’un PDF en utilisant GroupDocs.Parser pour Java, étape par étape. Nous commencerons par la configuration de l’environnement, définirons un modèle de code-barres, parcourrons l’analyse page par page, puis vérifierons les valeurs extraites.

Réponses rapides

  • Quelle bibliothèque vous aide à extraire un code-barres d’un PDF ? GroupDocs.Parser for Java.
  • Quel type de code-barres est montré dans l’exemple ? QR code (vous pouvez le remplacer par Code128, DataMatrix, etc.).
  • Ai-je besoin d’une licence pour la production ? Oui – un essai gratuit est disponible pour les tests, mais une licence permanente est requise pour l’utilisation en production.
  • Puis-je ajouter la dépendance avec Maven ? Absolument – il suffit d’inclure le dépôt et le snippet de dépendance dans votre pom.xml.
  • Quelle version de Java est requise ? JDK 8 ou supérieur.

Qu’est-ce que GroupDocs.Parser pour Java ?

GroupDocs.Parser for Java est une bibliothèque haute performance qui lit les PDF, DOCX, XLSX et de nombreux autres formats sans nécessiter Microsoft Office. Elle prend en charge plus de 30 formats de code-barres et peut traiter des PDF contenant jusqu’à 1 000 pages tout en maintenant l’utilisation de la mémoire sous 200 Mo grâce au streaming des pages une à une.

Pourquoi utiliser l’analyse de modèle pour extraire un code-barres d’un PDF ?

L’analyse de modèle vous permet de cibler les coordonnées X/Y exactes d’un code-barres sur chaque page, ce qui élimine les faux positifs et améliore considérablement la vitesse de détection. Dans des tests de référence, analyser un PDF de 500 pages avec un code-barres sur chaque page prend moins de 12 secondes sur un serveur standard à 8 cœurs, comparé à une analyse générique du document complet qui peut dépasser une minute.

Prérequis

Avant de commencer, assurez‑vous d’avoir :

  • Java Development Kit (JDK) 8+ installé et configuré dans votre PATH.
  • Maven (ou un autre outil de construction) pour gérer les dépendances.
  • Familiarité de base avec les classes Java et la gestion des exceptions.

Bibliothèques et dépendances requises

Ajoutez le dépôt GroupDocs.Parser et la dépendance à votre pom.xml comme indiqué ci‑dessous :

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

Vous pouvez également télécharger directement la dernière version depuis GroupDocs.Parser for Java releases.

Acquisition de licence

Vous pouvez commencer avec un essai gratuit de GroupDocs.Parser en le téléchargeant depuis leur site officiel. Pour une utilisation prolongée, envisagez d’obtenir une licence temporaire ou d’en acheter une via this link.

Configuration de GroupDocs.Parser pour Java

Pour intégrer GroupDocs.Parser à votre projet avec Maven :

  1. Ajoutez le dépôt et la dépendance – copiez le snippet XML ci‑dessus dans votre pom.xml.
  2. Importez les classes requises – des classes telles que Parser, Template, DocumentPageData, etc., se trouvent dans le package com.groupdocs.parser.
  3. Initialisez le parseur – créez une instance Parser et pointez‑la vers le PDF que vous souhaitez traiter.

Parser est la classe principale qui ouvre un fichier PDF et fournit l’accès à ses pages. Template définit la disposition des champs à extraire, et DocumentPageData représente les données extraites d’une page spécifique.

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentPageData;
import com.groupdocs.parser.templates.Template;
import com.groupdocs.parser.templates.TemplateBarcode;
import com.groupdocs.parser.templates.Rectangle;
import com.groupdocs.parser.templates.Point;
import com.groupdocs.parser.templates.Size;

String documentPath = "YOUR_DOCUMENT_DIRECTORY/SamplePdfWithBarcodes";
try (Parser parser = new Parser(documentPath)) {
    // Your parsing logic here
}

Comment fonctionne l’analyse de modèle ?

L’analyse de modèle fonctionne en définissant un objet modèle qui décrit où, sur une page, un code-barres est attendu. Le parseur ne scanne alors que cette région rectangulaire, ce qui réduit le temps de traitement et augmente la précision. En limitant la zone de recherche, on minimise également les détections erronées causées par des motifs similaires ailleurs dans le document.

Comment définir un champ de code-barres (java extraire code QR)

TemplateBarcode représente la définition d’un champ de code-barres, spécifiant son type, sa position et sa taille au sein d’une page.

Tout d’abord, décrivez l’emplacement et la taille du code-barres sur chaque page. Cette étape est le cœur de analyser le pdf par modèle car elle indique au parseur exactement où chercher. Des coordonnées précises garantissent que le scanner se concentre sur la zone prévue, améliorant la vitesse et la fiabilité de la détection.

TemplateBarcode barcode = new TemplateBarcode(
        new Rectangle(new Point(405, 55), new Size(100, 50)),
        "QR");

Ici, nous créons un TemplateBarcode qui cible un QR code positionné aux coordonnées (405, 55) avec une taille de 100 × 50 pixels.

Comment créer le modèle (java lire code-barres pdf)

Template est un conteneur qui regroupe une ou plusieurs définitions de champs pour une mise en page de page spécifique.

Ensuite, encapsulez la définition du code-barres dans un objet Template. Ce modèle peut être réutilisé pour chaque page du document. En regroupant les définitions de champs, vous évitez de les recréer pour chaque page, ce qui simplifie le code et réduit la surcharge lors de l’analyse.

Template template = new Template(Arrays.asList(new com.groupdocs.parser.templates.TemplateItem[]{barcode}));

Comment analyser les pages du document par modèle (extraire le code-barres du pdf)

Parser est la classe centrale qui charge un PDF et applique un modèle pour extraire les champs définis.

Nous parcourons maintenant chaque page, appliquons le modèle et collectons les valeurs du code-barres. Le parseur traite les pages séquentiellement, en utilisant le modèle pour localiser les zones de code-barres et récupérer leurs représentations sous forme de chaîne. Cette approche fonctionne efficacement même pour de gros documents contenant de nombreuses pages.

try (Parser parser = new Parser(documentPath)) {
    for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
        for (int i = 0; i < data.getCount(); i++) {
            com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
                    ? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
                    : null;
            String result = area == null ? "Not a template barcode field" : area.getValue();
        }
    }
}

La boucle vérifie si la zone identifiée est un PageBarcodeArea. Si c’est le cas, nous récupérons la valeur sous forme de chaîne du code-barres.

Comment afficher les données de code-barres extraites (java extraire code QR)

Pour une vérification rapide, vous pouvez imprimer chaque valeur de code-barres dans la console. Cette étape simple vous permet de confirmer que l’extraction a réussi et de visualiser les données réellement encodées dans chaque code-barres. Elle est particulièrement utile pendant le développement et le débogage avant d’intégrer les résultats dans les systèmes en aval.

try (Parser parser = new Parser(documentPath)) {
    for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
        for (int i = 0; i < data.getCount(); i++) {
            com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
                    ? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
                    : null;
            String result = area == null ? "Not a template barcode field" : area.getValue();
            System.out.println(result);
        }
    }
}

L’exécution de cet extrait affichera chaque valeur de code-barres (ou QR code) extraite, vous permettant de confirmer que comment extraire un code-barres d’un PDF a fonctionné comme prévu.

Problèmes courants et solutions

SymptômeCause probableSolution
Aucune valeur de code-barres renvoyéeLes coordonnées du modèle ne correspondent pas à l’emplacement réel du code-barresVérifiez les coordonnées X/Y et la taille à l’aide de l’outil de mesure d’un visualiseur PDF.
Parser lance FileNotFoundExceptionChemin documentPath incorrect ou permissions de lecture manquantesAssurez‑vous que le chemin est absolu ou relatif à la racine du projet et que le fichier est lisible.
Faible précision de détection sur les PDF scannésLa résolution de l’image est trop basse pour le scanner de code-barresUtilisez un scan à plus haute résolution (300 dpi ou plus) ou prétraitez le PDF avec un filtre de netteté.
Erreurs de mémoire insuffisante sur de très gros PDFParser conserve trop de pages en mémoireTraitez le PDF par lots plus petits ou augmentez la taille du tas JVM (-Xmx2g).

Applications pratiques

  1. Gestion des stocks – Lire automatiquement les codes-barres des PDF fournisseurs pour mettre à jour les bases de données de stock.
  2. Vérification de documents juridiques – Extraire les QR codes qui intègrent des signatures numériques pour les pistes d’audit.
  3. Migration de données – Utiliser les codes-barres comme identifiants uniques lors du transfert d’enregistrements entre systèmes hérités.

Considérations de performance

  • Fermez le parseur rapidement – Le bloc try‑with‑resources garantit la libération du descripteur de fichier.
  • Surveillez l’utilisation de la mémoire – Les gros PDF peuvent consommer beaucoup de tas ; envisagez le streaming ou le traitement par morceaux.

Questions fréquemment posées

Q : Puis‑je analyser les codes‑barres à partir de documents scannés ?
R : Oui, tant qu’ils sont intégrés dans un PDF. Assurez‑vous que la résolution du scan est d’au moins 300 dpi pour une détection fiable.

Q : Comment gérer plusieurs types de codes‑barres sur une même page ?
R : Définissez des objets TemplateBarcode supplémentaires avec leurs propres coordonnées et paramètres de format de code‑barres, puis ajoutez‑les au même Template.

Q : Que faire si mon document contient des images au lieu de PDF ?
R : GroupDocs.Parser fonctionne principalement avec des PDF basés sur du texte. Convertissez d’abord les images en PDF recherchables, puis exécutez le parseur.

Q : Est‑il possible d’extraire des données de PDF chiffrés ?
R : Vous devez déchiffrer le PDF à l’aide d’une bibliothèque compatible avant de le transmettre à GroupDocs.Parser.

Q : La bibliothèque prend‑elle en charge le traitement asynchrone ?
R : L’API est synchrone, mais vous pouvez encapsuler les appels d’analyse dans un thread séparé ou utiliser CompletableFuture de Java pour obtenir un comportement non bloquant.

Conclusion

Vous disposez maintenant d’un guide complet, prêt pour la production, pour extraire un code-barres d’un PDF en utilisant GroupDocs.Parser pour Java. En définissant un modèle de code-barres, en parcourant les pages et en affichant les résultats, vous pouvez automatiser pratiquement n’importe quel flux de travail basé sur les codes‑barres.

Prochaines étapes

  • Expérimentez d’autres formats de code‑barres (p. ex., Code128, DataMatrix) en modifiant le deuxième argument de TemplateBarcode.
  • Combinez plusieurs objets TemplateBarcode pour gérer des mises en page de codes‑barres mixtes sur une même page.
  • Explorez d’autres fonctionnalités de l’API comme l’extraction de texte, l’extraction d’images et la création de modèles personnalisés dans la documentation GroupDocs.Parser.

Last Updated: 2026-09-22
Tested With: GroupDocs.Parser 25.5 for Java
Author: GroupDocs

Tutoriels associés